笔记_Linux环境下SQL*Plus登录Oracle问题详解与解决方案

笔记_Linux环境下SQL*Plus登录Oracle问题详解与解决方案

目录

  • 笔记_Linux环境下SQL*Plus登录Oracle问题详解与解决方案
    • 一. ORA-12162: TNS:net service name is incorrectly specified
      • 问题描述
      • 解决方法
      • 参考链接
    • 二. ORA-12545: Connect failed because target host or object does not exist
      • 问题描述
      • 解决方法
    • 三. SQL*Plus输出格式化
      • 配置方法

一. ORA-12162: TNS:net service name is incorrectly specified

问题描述

在使用 sqlplus 连接到Oracle数据库服务器时,可能会遇到以下错误:

ORA-12162: TNS:net service name is incorrectly specified

此错误通常是由于未正确设置环境变量 $ORACLE_HOME$ORACLE_SID 引起的。

解决方法

  1. 检查环境变量

    echo $ORACLE_HOME
    echo $ORACLE_SID
    

    如果 $ORACLE_SID 为空,需要进行设置。

  2. 设置环境变量

    export ORACLE_SID="XE"
    echo "export ORACLE_SID" >> ~/.bashrc
    

    通过将上述命令添加到用户的 .bashrc 文件中,可以使环境变量在系统重启后仍然有效。

  3. 验证设置

    echo $ORACLE_SID
    

    如果能够正常输出设置的值,则问题已解决。

参考链接

  • Oracle“ ORA-12162:TNS:net服务名称指定不正确”错误和解决方案
  • net service name is incorrectly spe

二. ORA-12545: Connect failed because target host or object does not exist

问题描述

在使用 sqlplus 连接数据库时,可能会遇到以下错误:

ORA-12545: Connect failed because target host or object does not exist

此错误通常是由于未指定目标主机或对象不存在引起的。

解决方法

  1. 使用服务名方式连接
    sqlplus /nolog
    conn 用户名/密码@host/库名
    
    确保 host库名 正确无误。

三. SQL*Plus输出格式化

配置方法

  1. 创建或编辑 login.sql 文件

    cd $ORACLE_HOME
    vim login.sql
    
  2. 添加以下配置

    -- 设置显示“已选择xx行”,显示本次SQL命令处理的记录条数
    set feedback on
    -- 显示SQL语句的运行时间,精确到0.01秒
    set timing on
    -- 去除标准输出每行的拖尾空格
    set trimout on
    -- 去除重定向(spool)输出每行的拖尾空格
    set trimspool on
    -- 设置显示的文本宽度为9999个字符
    set linesize 9999
    -- 设置SQL*Plus多久打印一次标题
    set pagesize 48
    -- 设置行的标题列的分隔符
    set colsep ' '
    -- 设置输出不换行
    set wrap off
    
  3. 重新登录测试
    重新登录SQL*Plus,验证输出格式是否已按配置生效。

通过以上步骤,可以有效解决Linux环境下SQLPlus登录Oracle时遇到的常见问题,并优化SQLPlus的输出格式,提升使用体验。

你可能感兴趣的:(linux,oracle,数据库)