SQL*Plus是Oracle数据库的命令行工具,其正常运行需要配置Oracle客户端环境变量,主要包括:ORACLE_HOME(Oracle客户端安装根目录)、PATH(包含Oracle客户端可执行文件路径)、LD_LIBRARY_PATH(包含Oracle客户端库文件路径)、TNS_ADMIN(TNS配置文件目录)、NLS_LANG(字符集设置)等。
适用于个人用户使用SQL*Plus的场景,配置文件为~/.bashrc(或~/.bash_profile,若为登录shell)。
操作步骤:
.bashrc文件:vi ~/.bashrc
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 # Oracle客户端安装根目录
export PATH=$ORACLE_HOME/bin:$PATH # 将Oracle bin目录加入PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH # 加入Oracle库文件路径
export TNS_ADMIN=$ORACLE_HOME/network/admin # TNS配置文件(如tnsnames.ora)所在目录
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 字符集设置(适配数据库)
export ORACLE_SID=orclcdb # 数据库实例名(可选,若需直接连接)
Esc→输入:wq→回车)。source ~/.bashrc
若需让所有用户都能使用SQL*Plus,可修改系统级配置文件/etc/profile或/etc/environment。
操作步骤(以/etc/profile为例):
sudo权限编辑/etc/profile:sudo vi /etc/profile
ORACLE_SID,除非所有用户共用同一实例):export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
source /etc/profile
配置完成后,可通过以下命令验证变量是否生效:
# 检查ORACLE_HOME是否指向正确路径
echo $ORACLE_HOME
# 检查PATH是否包含Oracle bin目录
echo $PATH | grep oracle
# 检查SQL*Plus版本(验证命令是否可用)
sqlplus -v
若sqlplus -v输出类似SQL*Plus: Release 19.0.0.0.0 - Production on Wed Sep 24 10:00:00 2025的信息,则说明环境变量配置成功。
sqlplus: command not found:PATH变量未正确包含$ORACLE_HOME/bin,需重新检查.bashrc或/etc/profile中的PATH设置,并执行source命令生效。ORA-12154: TNS: could not resolve the connect identifier specified:TNS_ADMIN路径错误或tnsnames.ora文件缺失,需确认TNS_ADMIN指向的目录下存在有效的tnsnames.ora文件(可通过ls $TNS_ADMIN查看)。NLS_LANG设置是否与数据库字符集一致(可通过SELECT * FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET';查询数据库字符集)。ORACLE_HOME路径通常为解压后的目录(如/opt/oracle/instantclient_19_8),且无需设置ORACLE_SID。/etc/profile.d/oracle.sh),避免重复修改每个用户的.bashrc文件(需sudo权限)。