SQLPlus命令行工具有哪些隐藏功能
导读:SQL*Plus 的隐藏功能与高阶用法 一 启动与会话初始化 使用 -S(无提示模式)可隐藏横幅、提示与回显,适合在脚本或自动化任务中静默运行:sqlplus -S user/pass@ORCL @script.sql。 使用 -R 1|...
SQL*Plus 的隐藏功能与高阶用法
一 启动与会话初始化
- 使用 -S(无提示模式)可隐藏横幅、提示与回显,适合在脚本或自动化任务中静默运行:
sqlplus -S user/pass@ORCL @script.sql。 - 使用 -R 1|2|3(受限模式)限制与文件系统的交互,最高级别 -R 3 禁用所有用户级文件命令,提升受控环境的安全性。
- 使用 -M “HTML ON … SPOOL ON” 一键输出为 HTML 报表,便于共享与打印。
- 使用 -C 10.2.0 等兼容模式,让当前会话的受支持命令按指定版本行为执行(兼容性开关)。
- 登录后可自动执行站点与用户概要文件:$ORACLE_HOME/sqlplus/admin/glogin.sql 与当前目录的 login.sql,常用于统一设置格式、编辑器、提示符等。
- 启动时不连库可用 /nolog,进入后再 CONNECT,便于先做环境检查或条件化连接。
二 安全交互与脚本参数
- ACCEPT 不仅支持交互输入,还支持 DEFAULT 默认值与 HIDE 隐藏输入(如密码),减少泄露风险:
ACCEPT p PROMPT 'Pwd:' HIDE。 - 在脚本中结合 DEFINE 预设变量,配合
& 变量名引用,实现参数化脚本:DEFINE owner=SCOTT;SELECT * FROM & owner.emp;。 - 为避免敏感信息回显,脚本中可临时关闭回显与反馈:
SET VER OFF、SET FEEDBACK OFF;输出到文件时用 SPOOL 捕获结果。
三 输出格式与报表增强
- 常用“静默与美化”组合:
SET LINESIZE 500 PAGESIZE 9999 TRIMSPOOL ON LONG 200 SERVEROUTPUT ON SIZE UNLIMITED,解决列折行、尾部空格、LOB 显示截断与 DBMS_OUTPUT 不可见等问题。 - 列级控制:COLUMN 支持多子句,如
COL NAME FORMAT a40 HEADING 'Employee|Name' JUSTIFY CENTER,实现多行标题、对齐、换行与截断策略。 - 页眉页脚与报表分隔:TTITLE/ BTITLE 定制报表头尾;BREAK 与 COMPUTE 做分组小计/合计(如按部门打断、统计人数与薪资合计)。
- 交互式浏览长结果:SET PAUSE ON 分页显示,配合
SET PAUSE '--- More ---'与SET PAGESIZE控制每屏行数。
四 命令行编辑与执行技巧
- 快速重跑与查看缓冲区:
/或RUN执行当前缓冲区;LIST(简写 L)查看;SAVE file.sql保存;EDIT(可设DEFINE _EDITOR=vi)调用编辑器。 - 行内编辑三件套:
CHANGE /old/new/(简写 C)、APPEND text(简写 A)、INPUT(简写 I)逐行修补 SQL,避免整段重写。 - 在 SQL*Plus 中无缝执行操作系统命令:Linux 用 !cmd 或 $ cmd,Windows 用 $ dir;需要返回时
exit。 - 会话内临时切到 Shell:输入 ! 直接开启子 Shell,完成后
exit回到 SQL*Plus。 - 提升命令行体验(非内置):在 Linux 上用 rlwrap 为 sqlplus 提供 readline 能力(历史、光标移动、搜索),如
alias sqlplus='rlwrap sqlplus',显著改善交互效率。
五 日志、HTML 与自动化
- 一键 HTML 报表:启动时加
-M "HTML ON SPOOL ON",或在会话中SET MARKUP HTML ON SPOOL ON,再SPOOL report.html,即可生成带样式的查询结果页面。 - 静默批处理:
sqlplus -S /nolog @script.sql > run.log 2> & 1,结合SET ECHO OFF FEEDBACK OFF VER OFF生成干净日志。 - 会话级时间格式:在
glogin.sql或脚本中ALTER SESSION SET NLS_DATE_FORMAT='HH24:MI:SS',统一显示风格。 - 安装命令行帮助:以具备权限的用户执行
@$ORACLE_HOME/sqlplus/admin/help/hlpbld.sql与helpus.sql,随后可用HELP INDEX查询内置帮助主题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SQLPlus命令行工具有哪些隐藏功能
本文地址: https://pptw.com/jishu/775838.html
