本文針對 Oracle SQL*Plus,非 SQL Server 工具,收錄於本系列供異構資料庫開發者參考。
@file.sql / START file.sql -- 執行腳本
EDIT -- 編輯當前緩衝區
/ -- 重跑上一條 SQL
SPOOL file.txt / SPOOL OFF -- 輸出至檔案
SET LINESIZE 200 -- 行寬
SET PAGESIZE 50 -- 頁長
COLUMN col_name FORMAT A30 -- 欄位寬度
COLUMN col_name HEADING 'New Title' -- 標題別名
COLUMN col_name JUSTIFY CENTER -- 對齊
SET HEADING OFF -- 隱藏標題
SET FEEDBACK OFF -- 隱藏行數
SET TRIMSPOOL ON -- 移除尾部空格
SET TERMOUT OFF -- 關閉螢幕輸出 (加速 SPOOL)
SET AUTOCOMMIT ON/OFF -- 自動提交
SET ECHO ON/OFF -- 顯示腳本執行語句
SET TIMING ON -- 顯示執行時間
SET SQLPROMPT 'SQL> ' -- 自訂提示符
DEFINE var = value -- 定義替換變數
UNDEFINE var -- 取消變數
TTITLE 'Monthly Report' -- 頁首
BTITLE 'Confidential' -- 頁尾
BREAK ON dept_no SKIP 1 -- 分組換行
COMPUTE SUM OF sal ON dept_no -- 分組小計
CONNECT user/pass@tns -- 連線
EXEC procedure_name -- 執行程序
COPY FROM u1/p1@db1 TO u2/p2@db2 CREATE t2 USING SELECT * FROM t1
HOST cmd / ! cmd -- 執行 OS 指令
HELP INDEX / HELP command -- 線上說明
SHOW ALL / SHOW PARAMETERS / SHOW SGA / SHOW USER / SHOW ERRORS
SET HEADING OFF FEEDBACK OFF TRIMSPOOL ON TERMOUT OFF PAGESIZE 0 LINESIZE 3000
SPOOL export.csv
SELECT col1 || ',' || col2 || ',' || col3 FROM big_table;
SPOOL OFF
SET MARKUP HTML ON 直接輸出 HTML 表格。HOST 可用,! 僅 Unix/Linux。熟練掌握 SQL*Plus 命令,能大幅提升 Oracle 開發、維護、自動化腳本編寫效率。