COL[UMN] 是 SQL*Plus 專用命令,用於控制查詢結果中特定欄位的顯示格式。設定具有 Session 級持久性,直到 CLEAR 或離開 Session。本文詳細說明所有子句與實戰範例。
COL[UMN] [{column|expr} [option ...]]
| 子句 | 縮寫 | 功能 | 範例 |
|---|---|---|---|
| ALIAS | ALI | 設定欄位別名(僅影響顯示) | COL ename ALIAS "Employee Name" |
| CLEAR | CLE | 清除該欄位所有格式設定 | COL ename CLEAR |
| FOLD_AFTER | FOLD_A | 該欄位後換行 | COL ename FOLD_AFTER |
| FOLD_BEFORE | FOLD_B | 該欄位前換行 | COL ename FOLD_BEFORE |
| FORMAT | FOR | 指定顯示格式(數值/字串/日期) | COL sal FORMAT $99,999.00 |
| HEADING | HEA | 自訂欄位標題(支援多行 | 分隔) | COL ename HEADING "Emp|Name" |
| JUSTIFY | JUS | 對齊:LEFT/CENTER/RIGHT | COL sal JUSTIFY RIGHT |
| LIKE | - | 複製另一欄位/別名的格式 | COL bonus LIKE sal |
| NEWLINE | NEWL | 該欄位前強制換行 | COL ename NEWLINE |
| NEW_VALUE | NEW_V | 將該欄位值存入變數(用於報表標題) | COL deptno NEW_VALUE dno |
| OLD_VALUE | OLD_V | 將該欄位前一筆值存入變數 | COL deptno OLD_VALUE pdno |
| NOPRINT / PRINT | NOPRI / PRI | 隱藏/顯示該欄位 | COL password NOPRINT |
| NULL | NUL | NULL 值顯示文字 | COL comm NULL '(null)' |
| ON / OFF | - | 啟用/停用該欄位格式 | COL ename OFF |
| WRAPPED / WORD_WRAPPED / TRUNCATED | WRA / WOR / TRU | 長字串處理:換行/斷詞換行/截斷 | COL notes WRAPPED |
SQL> COL loc HEADING "Location|City"
SQL> SELECT deptno, dname, loc FROM dept;
DEPTNO DNAME Location
------ -------------- -------
10 ACCOUNTING NEW YORK
COL sal FORMAT $99,999.00
COL comm FORMAT 99,999.99
SELECT ename, sal, comm FROM emp;
ENAME SAL COMM
------ ---------- -------
KING $5,000.00 0.00
COL long_text FORMAT A20 TRUNCATED
COL notes FORMAT A30 WRAPPED
COL password NOPRINT
SELECT username, password FROM user_accounts;
-- password 欄位不顯示,但仍可供 NEW_VALUE 變數使用
COL deptno NEW_VALUE dno NOPRINT
BREAK ON deptno SKIP PAGE
TTITLE LEFT 'Department: ' dno SKIP 2
SELECT deptno, ename, sal FROM emp ORDER BY deptno;
COL bonus LIKE sal -- bonus 直接套用 sal 的 FORMAT、JUSTIFY 等
COL 設定寫入 login.sql(位於 $ORACLE_HOME/sqlplus/admin/ 或使用者家目錄),每次啟動 SQL*Plus 自動載入。SET LINESIZE 200 PAGESIZE 50 獲得最佳終端機顯示效果。SQL> COL
-- 列出所有已設定格式的欄位及其屬性