下面我会详细介绍“Oracle数据库使用sqlplus时的连接错误与方向键乱码解决”的完整攻略。
问题描述
在使用 sqlplus
连接 Oracle
数据库时,常见出现连接错误以及方向键乱码的问题。例如在连接时,出现以下提示:
$ sqlplus username/password@hostname:port/sid
Error 6 initializing SQL*Plus
Message file sp1<lang>.msb not found
或者在输入命令时,使用方向键时出现乱码问题。
连接错误解决方法
连接错误通常是由于环境变量配置问题导致的。解决方法如下:
- 设置
ORACLE_HOME
环境变量。指向 Oracle 安装目录,例如/opt/oracle/product/10.2.0/db_1/
。
$ export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1/
- 设置
LD_LIBRARY_PATH
环境变量。指向 Oracle 安装目录下的lib
目录,例如/opt/oracle/product/10.2.0/db_1/lib/
。
$ export LD_LIBRARY_PATH=/opt/oracle/product/10.2.0/db_1/lib/
- 设置
PATH
环境变量。包含 Oracle 安装目录下的bin
目录,例如/opt/oracle/product/10.2.0/db_1/bin/
。
$ export PATH=$PATH:/opt/oracle/product/10.2.0/db_1/bin/
- 调用
sqlplus
命令时指定语言代码。例如zh_CN
或en_US
。
$ sqlplus username/password@hostname:port/sid LANG=zh_CN.UTF8
方向键乱码解决方法
方向键乱码通常是由于终端不支持 UTF-8 编码或者 Oracle 自带的 sqlplus 程序不支持 UTF-8 编码导致的。解决方法如下:
- 将终端编码设置为 UTF-8 编码。可以通过修改终端配置文件或者设置
LANG
环境变量来实现。
$ export LANG=en_US.UTF-8
-
将 Oracle 自带的 sqlplus 程序设置为 UTF-8 编码。可以通过修改 sqlplus 配置文件
glogin.sql
来实现。找到glogin.sql
文件并修改为以下内容:sql
set sqlprompt ""
set sqlprompt '_USER "@_CONNECT_IDENTIFIER > " '
SET LINESIZE 1024
SET EDITOR vim
SET TERM UTF-8修改完成后,保存
glogin.sql
文件并重新启动 sqlplus,即可正常使用方向键。
示例
下面给出两个示例说明:
示例一:设置 ORACLE_HOME 环境变量
安装 Oracle 数据库后,打开终端连接数据库时,出现以下提示:
$ sqlplus scott/tiger
Error 6 initializing SQL*Plus
Message file sp1<lang>.msb not found
发现没有设置环境变量,因此需要设置 ORACLE_HOME
。
首先,找到 Oracle 的安装目录 /u01/app/oracle/product/11.2.0/db_1/
,设置 ORACLE_HOME
和 LD_LIBRARY_PATH
环境变量。
$ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1/
$ export LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1/lib/
然后,将 sqlplus
命令加入到 PATH
环境变量中。
$ export PATH=$PATH:/u01/app/oracle/product/11.2.0/db_1/bin/
再次运行 sqlplus
命令,即可连接到数据库。
示例二:设置 glogin.sql
在使用 sqlplus 时,发现使用方向键会出现乱码。
首先,找到 glogin.sql
文件所在位置。可以通过以下命令查询:
$ sqlplus /nolog
SQL> SHOW USER
SQL> SELECT * FROM dba_directories WHERE directory_name='SQLPATH';
找到 glogin.sql
文件后,修改为以下内容:
set sqlprompt ""
set sqlprompt '_USER "@_CONNECT_IDENTIFIER > " '
SET LINESIZE 1024
SET EDITOR vim
SET TERM UTF-8
保存 glogin.sql
文件,并重新启动 sqlplus。使用方向键时,即可正常显示。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Oracle数据库使用sqlplus时的连接错误与方向键乱码解决 - Python技术站