為了在 SQL*Plus 環境中生成符合用戶需要規范的報表,SQL*Plus 工具提供了多個用於格式化查詢結果的命令,使用這些命令可以實現設置列的標題、定義輸出值的顯示格式和顯示寬度、為報表增加頭標題和底標題、在報表中顯示當前日期和頁號等。
一、Column 命令
該命令可以實現格式化查詢結果、設置列寬度、重新設置列標題等功能。
語法格式:
col[umn] [column_name | alias | option]
- columen_name:用於指定設置的列的名稱。
- alias:用於指定列的別名,通過它可以把英文列標題設置為漢字。
- option:用於指定某個列的顯示格式,option 選項的值及其說明如下:
| option 選項的值 | 說明 |
| clear | 消除指定列所設置的顯示屬性,從而回復列使用默認的顯示屬性 |
| format | 格式化指定的列 |
| heading | 定義列標題 |
| justify | 調整列標題的對其方式。默認數值類型的列為右對齊,其他類型的列為左對齊 |
| null | 指定一個字符串,如果列的值為null,則由該字符串代替 |
| print/noprint | 心事列標題或隱藏列標題,默認為print |
| on|off | 控制定義的顯示屬性的狀態,off表示定義的所有顯示屬性都不起作用,默認為on |
| wrapped | 當字符串的長度超過顯示寬度時,將字符串的超出部分折疊到下一行顯示 |
| word_wrapped | 表示從一個完整的字符處折疊 |
| truncated | 表示截斷字符串尾部 |
如果關鍵字 column 后面未指定任何參數,則 column 命令將顯示 SQL*Plus 環境中所有列的當前定義屬性;如果在 column 后面指定某個列名,則顯示指定列的當前定義屬性。
常用 option 選項如下:
1、format 命令
該選項用於格式化指定的列,需要在 format 關鍵字的后面跟一個掩碼格式。
2、heading 命令
該選項用於定義列標題,比如,許多數據表或試圖的列名都為英文格式,可以使用此選項將英文形式的列標題顯示為中文格式。
EG:
SQL > col empno heading 雇員編號 SQL > col ename heading 雇員姓名 SQL > select empno,ename from scott.emp
這樣就可以將數據庫查出來的列名以中文的格式顯示
3、null 命令
該選項的后面指定一個字符串,如果列的值為 null,則用字符串代替空值。
EG:
SQL > col common null "空值" SQL > select empno,common from scott.emp where comm is null
這樣當從表中查出來的common 的這一列沒有值得時候,就會在common 這一列下面顯示 “空值” 的字符串。
4、on | off 命令
該選項用於控制定義的顯示屬性的狀態,off 表示定義的所有顯示屬性都不起作用,默認為 on。
5、wrapped / word_wrapped 選項
這兩個選項都用於實現折行的功能,wrapped 選項按照指定長度折行,Word_wrapped 選項按照完整的字符折行。
二、Ttitle 和 Btitle
在 SQL*Plus 環境中,執行 SQL語句后的顯示結果在默認情況下包括列標題、頁分割線、查詢結果和行數合計等內容。可以為整個輸出結果設置報表頭(頭標題)、為每頁都這是頁標題和頁碼、為整個輸出結果設置報表尾,會使打印報表更美觀。SQL*Plus 就為我們提供了 Ttitle 和 Btitle 命令,這個兩個命令分別用來設置打印時每頁的頂部和底部標題。
Ttitle 命令語法格式如下:
Tti[tle] [printspect [text | variable] ...] | [off | on]
- printspec:用來作為頭標題的修飾性選項,有如下的值:
| printspec 選項的值 | 說明 |
| col | 指定在當前行的第幾列打印頭部標題 |
| skip | 跳到從下一行開始的第幾行,默認為1 |
| left | 在當前行中左對齊打印數據 |
| center | 在當前行中間打印數據 |
| right | 在當前行中右對齊打印數據 |
| bold | 以黑體打印數據 |
- text:用於設置輸出結果的頭標題(報表頭文字)
- variable :用於在頭標題中輸出相應的變量值
- off:表示禁止打印頭標題
- on:表示允許打印頭標題
注意:Btitle 的語法格式與 Ttitle 的語法格式相同,如果在 Ttitle 或 Btitle 命令沒有任何參數,則顯示當前的 Ttitle 或 Btitle 的定義。
每次設置的頭標題和底標題有效期直到本次會話結束后終止。可以使用 ttitle off 命令和 btitle 命令來手動取消頭標題和底標題的設置消息。
