在 Debian 上使用 sqlplus(Oracle 客户端)时报错,常见原因和解决办法如下。你可以先对照看是哪一类。
sqlplus: command not found原因:未安装或环境变量未配置
解决:
which sqlplus
echo $ORACLE_HOME
echo $PATH
如果为空:
export ORACLE_HOME=/opt/oracle/instantclient_21_1
export PATH=$ORACLE_HOME:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME
建议写入:
~/.bashrc
libaio.so.1: cannot open shared object file原因:缺少依赖库
解决:
sudo apt update
sudo apt install libaio1
Debian 12 可能叫:
sudo apt install libaio1t64
sqlplus: error while loading shared libraries原因:LD_LIBRARY_PATH 未设置
解决:
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
ORA-12162: TNS:net service name is incorrectly specified原因:未设置 ORACLE_SID 或连接串错误
解决:
export ORACLE_SID=orcl
或显式连接:
sqlplus user/pass@//ip:1521/service_name
ORA-12541: TNS:no listener原因:数据库未启动或监听未开
解决:
tnsnames.orasqlplus user/pass@//host:port/service
ORA-12514: TNS:listener does not currently know of service requested原因:服务名错误
解决:
SELECT name FROM v$database;
确认 SERVICE_NAME
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
sudo apt install alien libaio1
下载:
oracle-instantclient-basicoracle-instantclient-sqlplusalien -i xxx.rpm
如果你能贴出完整报错信息(命令 + 错误提示),我可以更精确定位问题。
例如:
sqlplus scott/tiger
Error: ...