Linux 与 Windows 上 SQL*Plus 的差异

总体说明 两者在核心功能方面是一致的,均为Oracle的字符模式客户端,能够通过 Oracle Net 连接数据库,且客户端与服务端平台可以不同,例如 Linux客户端连接Windows服务器 或者反过来。不过,它们在终端交互、环境配置、历史与编辑、字符显示以及日常使用习惯等方面存在差异。
主要差异对比
要点说明与示例
历史与编辑
- Linux 原生不支持方向键回调;使用 rlwrap 后可直接用上下键与光标键:
- 安装(示例):yum install -y rlwrap(或源码安装)
- 使用:rlwrap sqlplus / as sysdba
- 建议别名:echo “alias sqlplus=‘rlwrap sqlplus’” >> ~/.bash_profile
- 也可用 uniread 为 sqlplus 增加 readline 支持(需 Perl 与 readline 库)。
- Linux 原生不支持方向键回调;使用 rlwrap 后可直接用上下键与光标键:
退格与终端设置
- Linux 终端不匹配时退格显示为 ^H,可在 oracle 用户环境执行:stty erase ^H(写入 ~/.bash_profile 可持久化)。
环境启动与路径
- Linux:需正确设置 ORACLE_HOME、PATH、LD_LIBRARY_PATH,例如:
- export ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1
- export PATH=$ORACLE_HOME/bin:$PATH
- export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
- Windows:开始菜单快捷方式通常指向 %ORACLE_HOME%BINsqlplus.exe。
- Linux:需正确设置 ORACLE_HOME、PATH、LD_LIBRARY_PATH,例如:
字符集与显示
- 查询与设置示例:
- 查看:select userenv(‘language’) from dual;
- 建议统一:export NLS_LANG=AMERICAN_AMERICA.AL32UTF8(与终端编码一致以避免中文乱码)。
- 查询与设置示例:
连接写法与脚本化
- 连接串示例:
- 别名:sqlplus scott/tiger@orcl
- Easy Connect:sqlplus scott/tiger@host:1521/orcl
- 静默执行与日志(Linux/Windows 通用):
- sqlplus -S /nolog <<‘EOF’connect scott/tiger@orclset heading off feedback off pagesize 0select * from dual;exitEOF
- 连接串示例: