Linux 与 Windows 上 SQL*Plus 的区别与使用差异

总体说明 Linux 和 Windows 上的 SQL*Plus 在核心能力上基本相同,二者都是 Oracle 提供的字符界面客户端,都可以通过 Oracle Net 连接 Oracle 数据库,而且客户端与数据库服务器所在平台并不需要一致。例如,既可以使用 Linux客户端连接Windows服务器,也可以由 Windows 客户端连接 Linux 服务器。不过,在终端操作方式、环境变量配置、命令历史与编辑体验、中文字符显示以及日常管理习惯等方面,两者仍然存在较明显差别。
主要差异对比
要点说明与示例
历史与编辑
Linux 下原生 SQL*Plus 默认不支持方向键历史回调;安装并使用 rlwrap 后,即可通过上下方向键和光标键实现更方便的命令编辑:
- 安装(示例):yum install -y rlwrap(或源码安装)
- 使用:rlwrap sqlplus / as sysdba
- 建议别名:echo “alias sqlplus=‘rlwrap sqlplus’” >> ~/.bash_profile
此外,也可以使用 uniread 为 sqlplus 增加 readline 支持,但通常需要系统中具备 Perl 与 readline 库环境。
退格与终端设置
在 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:开始菜单中的 SQL*Plus 快捷方式通常会指向 %ORACLE_HOME%BINsqlplus.exe,使用上相对更直接。
字符集与显示
查询与设置示例:
- 查看: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
