温馨提示×

Sqlplus在Debian中有哪些隐藏功能

小樊
43
2025-12-17 08:36:47
栏目: 云计算

Debian上使用 SQL*Plus 的实用进阶技巧

一 命令行与登录的增强用法

  • 使用 rlwrap 为 SQLPlus 增加 readline 能力(方向键、历史、补全):安装命令为 sudo apt install rlwrap,随后创建别名 alias sqlplus=‘rlwrap sqlplus’,即可在 Debian 终端获得类 Bash 的编辑体验。该方式属于“增强体验”,并非 SQLPlus 内置功能。
  • 静默与批处理:使用 -S(Silent)隐藏 banner 与提示,便于在脚本或管道中干净输出;结合 ACCEPT 在交互式会话中安全读取变量,避免明文密码出现在命令行历史中。

二 登录即生效的自动配置

  • 全局登录脚本 $ORACLE_HOME/sqlplus/admin/glogin.sql:在此文件中放入常用 SETCOLUMN 配置,可实现每次登录自动生效(如页宽、行宽、标题、反馈等)。
  • 目录级登录脚本 login.sql:放在当前工作目录,仅对该目录启动的 SQL*Plus 生效,适合按项目定制格式与提示符。
  • 动态提示符:在 glogin.sql 或 login.sql 中设置 SET SQLPROMPT 并结合 SQL 变量,显示如 用户名@连接标识 的提示,便于多库并行操作不混淆,例如:
    • set sqlprompt "_user’@'_connect_identifier> "
    • 或使用变量从 v$instance 动态取实例名后设置提示符。

三 输出美化与报表导出

  • 常用 SET 项:LINESIZE(行宽)、PAGESIZE(页大小)、FEEDBACK(影响“X rows selected”提示)、HEADING(列标题)、TRIMOUT/TRIMSPOOL(去除右侧空格,利于导出)。
  • 列级格式化:COLUMN col FORMAT A20(字符)、COLUMN sal FORMAT 999,999.99(数值千分位与小数),让报表更规整。
  • 导出 CSV:用 SPOOL 将查询结果写入文件,例如:
    • SPOOL /tmp/employees.csv
    • SELECT … FROM employees;
    • SPOOL OFF 配合上面的格式化选项,可直接生成便于 Excel 打开的报表。

四 脚本化与自动化

  • 执行脚本与嵌套调用:@file 执行脚本,@@file 常用于脚本内相对路径的递归调用;START@ 同义。
  • 执行缓冲区:LIST 查看、RUN/ 执行、CLEAR BUFFER 清空,便于反复调试片段 SQL。
  • 在 SQL*Plus 中执行操作系统命令:使用 HOST! 直接运行 shell 命令(如查看日志、检查目录),减少来回切换。
  • Shell 集成与定时任务:在 Shell 中以 -S 静默模式捕获查询结果并赋值给变量,或写入报表;将脚本加入 crontab 实现定时导出与巡检。

五 会话与本地化设置

  • 会话级 NLS 调整:用 ALTER SESSION 设置日期、数字、语言等显示习惯,例如:
    • ALTER SESSION SET NLS_DATE_FORMAT = ‘YYYY-MM-DD HH24:MI:SS’;
    • ALTER SESSION SET NLS_LANG = ‘AMERICAN_AMERICA.AL32UTF8’; 将常用设置放入 glogin.sql 可实现登录即生效,避免乱码与格式不一致。

0