Debian 上 SQL*Plus 的高效用法
一 安装与连接
ORACLE_HOME=/usr/local/sqlplus、LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH、PATH=$ORACLE_HOME/bin:$PATH。如使用 RPM 包,可借助 alien 转换为 .deb 后 dpkg -i 安装。注意安装 libaio1 等依赖,避免运行时报库缺失。sqlplus /nolog 后 conn user/pass@tns 或 conn / as sysdba(本机特权登录);远程可用 sqlplus user/pass@//host:1521/service。若使用 TNS 别名,需在 tnsnames.ora 中配置并在环境变量中设置 TNS_ADMIN 指向其目录。二 命令行与脚本技巧
start /path/file.sql 或 @/path/file.sql 执行脚本;save 将当前 SQL Buffer 保存到文件,get 读取文件内容到缓冲区;长语句可用连字符 - 换行;/ 直接执行缓冲区内容,run 先回显再执行。!clear 在 SQL*Plus 中执行系统清屏并返回;Ctrl+C 中断当前输出或长时间运行;host 或 ! 临时切到 bash,完成后 exit 返回。define _editor=vi 可统一默认编辑器;通过运行 @?/sqlplus/admin/help/hlpbld.sql 与 helpus.sql 安装本地帮助,之后可用 help index 与 help <topic> 查询。三 显示与输出控制
set linesize 200、set pagesize 50、set newpage 0 调整页宽与分页;column name format a20、column price format 999.99 控制列宽与格式;set numwidth 5 设置数字列宽;set feedback 25 控制“已选择/已影响 N 行”的提示阈值。spool /path/out.log 开始捕获,直到 spool off 结束(包括查询结果、错误信息等);set echo on|off 控制是否回显脚本语句本身。rlwrap sqlplus 即可获得 readline 能力;可在 ~/.bashrc 中设置别名 alias sqlplus='rlwrap sqlplus'。四 备份与自动化
expdp 导出到该目录;导出文件可结合 gzip/rsync/scp 做压缩与异地保存。五 常见问题排查
rlwrap sqlplus,或在 ~/.bashrc 设置别名,获得方向键与历史编辑能力。sqlplus 报找不到库时,安装 libaio1(及可能的 libaio-dev),确保 LD_LIBRARY_PATH 包含 Instant Client 的 lib 目录。sqlplus user/pass@//host:1521/service 验证网络连通。