SQL*PLUS維護系統變量,也稱SET變量,利用它可爲SQL*PLUS交互創建一個特殊的環境,如:設置NUMBER數據的顯示寬度;設置每頁的行數;設置列的寬度等。可用SET命令改變這些系統變量,也可用SHOW命令列出它們.
show 系統變量
如:
SQL> show linesize
linesize 1000
使用set命令的語法以下:
SET 系統變量 值
SQL> set linesize 500
其中系統變量及其可選值以下:
ARRAY[SIZE] {20(默認值)|n}
AUTO[COMMIT] {OFF(默認值)|ON|IMM[EDIATE]}
BLO[CKTERMINATOR] {.(默認值)|C}
CMDS[EP] {;|C|OFF(默認值)|ON}
COM[PATIBILITY] {V5|V6|V7|NATIVE(默認值)}
CON[CAT] {.(默認值)|C|OFF|ON(默認值)}
COPYC[OMMIT] {0(默認值)|n}
CRT crt
DEF[INE] {&|C|OFF|ON(默認值)}
ECHO {OFF|ON}
EMBEDDED {OFF(默認值)|ON}
ESC[APE] {\(默認值)|C|OFF(默認值)|ON}
FEED[BACK] {6(默認值)|n|OFF|ON}
FLU[SH] {OFF|ON(默認值)}
HEA[DING] {OFF|ON(默認值)}
HEADS[EP] {|(默認值)|C|OFF|ON(默認值)}
LIN[ESIZE] {80(默認值)|n}
LONG {80(默認值)|n}
LONGC[HUNKSIZE] {80(默認值)|n}
MAXD[ATA] n
NEWP[AGE] {1(默認值)|n}
NULL text
NUMF[ORMAT] 格式
NUM[WIDTH] {10(默認值)|n}
PAGES[IZE] {14(默認值)|n}
PAU[SE] {OFF(默認值)|ON|text}
RECSEP {WR[APPED](默認值)|EA[CH]|OFF}
RECSEPCHAR { |C}
SCAN {OFF|ON(默認值)}
SERVEROUT[PUT] {OFF|ON} [SIZE n]
SHOW[MODE] {OFF(默認值)|ON}
SPA[CE] {1(默認值)|n}
SQLC[ASE] {MIX[ED](默認值)|LO[WER]|UP[PER]}
SQLCO[NTINUE] {>;(默認值)|文本}
SQLN[UMBER] {OFF|ON(默認值)}
SQLPER[FIX] {#(默認值)|C}
SQLP[ROMPT] {SQL>;(默認值)|文本}
SQLT[ERMINATOR] {;(默認值)|C|OFF|ON(默認值)}
SUF[FIX] {SQL(默認值)|文本}
TAB {OFF|ON(默認值)}
TERM[OUT] {OFF|ON(默認值)}
TI[ME] {OFF(默認值)|ON}
TIMI[NG] {OFF(默認值)|ON}
TRIM[OUT] {OFF|ON(默認值)}
UND[ERLINE] {-(默認值)|C|OFF|ON(默認值)}
VER[IFY] {OFF|ON(默認值)}
WRA[P] {OFF|ON(默認值)}
系統變量說明:
(1)ARRAY[SIZE] {20(默認值)|n} 置一批的行數,是SQL*PLUS一次從數據庫獲取的行數,有效值爲1至5000. 大的值可提升查詢和子查詢的有效性,可獲取許多行,但也須要更多的內存.當超過1000時,其效果不大.
(2)AUTO[COMMIT] {OFF(默認值)|ON|IMM[EDIATE]} 控制ORACLE對數據庫的修改的提交. 置ON時,在ORACLE執行每一個SQL命令或PL/SQL塊後對數據庫提交修改;置OFF時則制止自動提交,須要手工地提交修改,例如用SQL的COMMIT命令. IMMEDIATE功能同ON.
(3)BLO[CKTERMINATOR] {.(默認值)|C} 置非字母數字字符,用於結束PL/SQL塊.要執行塊時,必須發出RUN命令或/命令.
(4)CMDS[EP] {;|C|OFF(默認值)|ON} 置非字母數字字符,用於分隔在一行中輸入的多個SQL/PLUS命令.ON或OFF控制在一行中是否能輸入多個命令. ON時將自動地將命令分隔符設爲分號(.其中C表示所置字符.
(5)COM[PATIBILITY] {V5|V6|V7|NATIVE(默認值)} 指定當前所連接的ORACLE版本.若是當前ORACLE的版本爲5,則置COMPATIBILITY爲V5; 爲版本6時置成V6; 爲版本7時置成V7. 若是但願由數據庫決定該設置,在置成NATIVE.
(6)CON[CAT] {.(默認值)|C|OFF|ON(默認值)}設置結束一替換變量引用的字符.在停止替換變量引用字符以後可跟全部字符,做爲體會組成部分,不然SQL*PLUS將解釋爲替換變量名的一部分.當CONCAT開關爲ON時,SQL*PLUS可重置CONCAT的值爲點(.).
(7)COPYC[OMMIT] {0(默認值)|n} 控制COPY命令提交對數據庫修改的批數.每次拷貝n批後,將提交到目標數據庫.有效值爲0到5000. 可用變量ARRAYSIZE設置一批的大小.若是置COPYCOMMIT爲0,則僅在COPY操做結束時執行一次提交.
(8)CRT crt 改變SQL*PLUS RUNFORM命令使用的缺省CRT文件.若是置CRT不包含什麼,則crt僅包含''''.若是在一個Form的系統調用期間,要使用NEW.CRT(缺省CRT是OLD.CRT),可按下列形式調用Form:
SQL>;RUNFORM -C NEW form名
或者
SQL>;SET CRT NEW
SQL>;RUNFORM form名
第二中方法存儲CRT選擇,以至在下次運行RUNFORM命令(是在同一次SQL*PLUS交互中)時,不須要指定.
(9)DEF[INE] {&|C|OFF|ON(默認值)} 設置在替換變量時所使用的字符.ON或OFF控制SQL*PLUS是否掃描替換變量的命令及用他們的值代替. DEFINE的ON或OFF的設置控制SCAN變量的設置.
(10)ECHO {OFF|ON} 控制START命令是否列出命令文件中的每一命令.爲ON時,列出命令;爲OFF時,制止列清單.
(11)EMBEDDED {OFF(默認值)|ON} 控制每一報表在一頁中開始的地方. 爲OFF時,迫使每一報表是在新頁的頂部開始;爲ON時,運行一報表在一頁的任何位置開始.
(12)ESC[APE] {\(默認值)|C|OFF(默認值)|ON} 定義做爲Escape字符的字符.爲OFF時,使Escape字符不起做用.爲ON時,使Escape字符起做用.
(13)FEED[BACK] {6(默認值)|n|OFF|ON} 顯示由查詢返回的記錄數.ON和OFF置顯示爲開或關.置FEEDBACK爲ON時,等價於置n爲1. 若是置FEEDBACK爲0,等價於將它置成OFF.
(14)FLU[SH] {OFF|ON(默認值)} 控制輸出送至用戶的顯示設備.爲OFF時,運行操做系統作緩衝區輸出;爲ON時,不容許緩衝. 僅當非交互方式運行命令文件時使用OFF,這樣可減小程序I/O老是,從而改進性能.
(15)HEA[DING] {OFF|ON(默認值)} 控制報表中列標題的打印.爲ON時,在報表中打印列標題;爲OFF時禁止打印列標題.
(16)HEADS[EP] {|(默認值)|C|OFF|ON(默認值)} 定義標題分隔字符.可在COLUMN命令中使用標題分隔符,將列標題分紅多行.ON和OFF將標題分隔置成開或關.當標題分隔爲關(OFF)時,SQL*PLUS打印標題分隔符像任何字符同樣.
(17)LIN[ESIZE] {80(默認值)|n} 置SQL*PLUS在一行中顯示的字符總數,它還控制在TTITLE和BTITLE中對準中心的文本和右對齊文本. 可定義LINESIZE爲1至最大值,其最大值依賴於操做系統.
(18)LONG {80(默認值)|n} 爲顯示和拷貝LONG類型值的最大寬度的設置. 對於ORACLE7, n的最大值爲2G字節;對於版本6,最大值爲32767.
(19)LONGC[HUNKSIZE] {80(默認值)|n} 爲SQL*PLUS檢索LONG類型值的增量大小.因爲內存的限制,可按增量檢索,該變量僅應用於ORACLE7.
(20)MAXD[ATA] n 置SQL*PLUS可處理的最大行寬字符數,其缺省值和最大值在不一樣操做系統中是可變的.
(21)NEWP[AGE] {1(默認值)|n} 置每一頁的頭和頂部標題之間要打印的空行數.若是爲0, 在頁之間送一換號符,並在許多終端上清屏.
(22)NULL text 設置表示空值(null)的文本,若是NULL沒有文本,則顯示空格(缺省時). 使用COLUMN命令中的NULL子句可控制NULL變量對該列的設置.
(23)NUMF[ORMAT] 格式 設置顯示數值的缺省格式,該格式是數值格式.
(24)NUM[WIDTH] {10(默認值)|n} 對顯示數值設置缺省寬度.
(25)PAGES[IZE] {14(默認值)|n} 置從頂部標題至頁結束之間的行數.在11英寸長的紙上打印報表,其值爲54,上下各留一英寸(NEWPAGE值爲6).
(26)PAU[SE] {OFF(默認值)|ON|text} 在顯示報表時,控制終端滾動.在每一暫停時,必須按RETURN鍵.ON將引發SQL*PLUS在每一報表輸出頁開始時暫停.所指定的文本是每一次SQL*PLUS暫停時顯示的文本.若是要鍵入多個詞,必須用單引號將文本括起來.
(27)RECSEP {WR[APPED](默認值)|EA[CH]|OFF}
(28)RECSEPCHAR { |C} 指定顯示或打印記錄分行符的條件.一個記錄分行符,是由RECSEPCHAR指定的字符組成的單行.空格爲RECSEPCHAR的默認字符.
(29)RECSEP告訴SQL*PLUS在哪兒作記錄分隔.例如將RECSEP置成WRAPPED,在每一纏繞行以後,打印記錄分行符.若是將RECSEP置成EACH,SQL*PLUS在每一行後打印一記錄分行符.若是將RECSEP置成OFF, SQL*PLUS不打印分行符.
(30)SCAN {OFF|ON(默認值)} 控制對存在的替換變量和值的掃描.OFF禁止替換變量和值的處理; ON則容許正常處理.
(31)SERVEROUT[PUT] {OFF|ON} [SIZE n] 控制在SQL*PLUS中的存儲過程是否顯示輸出.OFF時爲禁止; ON時則顯示輸出. SIZE設置緩衝輸出的字節數,缺省值爲2000, n不能小於2000或大於一百萬.
(32)SHOW[MODE] {OFF(默認值)|ON} 控制SQL*PLUS在執行SET命令時是否列出其新老值old或new的設置.
SPA[CE] {1(默認值)|n} 設置輸出列之間空格的數目,其最大值爲10.
(33)SQLC[ASE] {MIX[ED](默認值)|LO[WER]|UP[PER]} 先於執行以前,將SQL命令和PL/SQL塊的大小寫進行轉換. SQL*PLUS將轉換命令中的所有文本,包括帶引號的直接量和標示符.SQLCASE不改變SQL緩衝區自己.
(34)SQLCO[NTINUE] {>;(默認值)|文本} 在一附加行上繼續一SQL*PLUS命令時,SQL*PLUS以該設置的字符序列進行提示.
(35)SQLN[UMBER] {OFF|ON(默認值)} 爲SQL命令和PL/SQL塊的第二行和後繼行設置提示.爲ON時,提示行號;爲OFF時,提示設置爲SQLPROMPT的值.
(36)SQLPER[FIX] {#(默認值)|C} 設置SQL*PLUS前綴字符.在鍵入一SQL命令或PL/SQL塊時,可在單獨行上鍵入一SQL*PLUS命令,由SQL*PLUS的前綴字符作前綴. SQL*PLUS直接執行該命令,不影響SQL命令或PL/SQL塊.前綴字符必須是非字母數字字符.
(37)SQLP[ROMPT] {SQL>;(默認值)|文本} 設置SQL*PLUS的命令提示符.
11:37:45 SQL> show sqlprompt
sqlprompt "SQL> "
11:38:21 SQL> set sqlprompt Jamm>
11:39:54 Jamm>show sqlprompt
sqlprompt "Jamm>"
11:40:03 Jamm>
(38)SQLT[ERMINATOR] {;(默認值)|C|OFF|ON(默認值)} 設置用於結束和執行SQL命令的字符. OFF意味着SQL*PLUS不識別命令終止符,用鍵入空行來結束SQL命令. ON重設置終止符爲默認的分號(.
(39)SUF[FIX] {SQL(默認值)|文本} 設置缺省文件的後綴,SQL*PLUS在命令中使用,來引用命令文件. SUFFIX不控制輸出(spool)文件的擴展名.
(40)TAB {OFF|ON(默認值)} 決定SQL*PLUS在終端輸出中如何格式化空白空間. 爲OFF時,在輸出中使用空格格式化空白空間;爲ON時,用TAB字符. TAB的缺省值依賴於系統,用SHOW TAB命令可查看該缺省值.
(41)TERM[OUT] {OFF|ON(默認值)} 控制由文件執行命令所產生的輸出的顯示. OFF禁止顯示,以至從一個命令文件假脫機輸出,在屏幕上看不到輸出. ON時顯示輸出. TERMOUT OFF 不影響交互地進行命令的輸出.
(42)TI[ME] {OFF(默認值)|ON} 控制當前日期的顯示. ON時,在每條命令提示前顯示當前時間; OFF時禁止時間的顯示.
11:37:54 SQL> set time off
SQL> set time on
11:38:21 SQL>
(43)TIMI[NG] {OFF(默認值)|ON} 控制時間統計的顯示. ON時,顯示每個運行的SQL命令或PL/SQL塊的時間統計; OFF時,禁止每個命令的時間統計.
(44)TRIM[OUT] {OFF|ON(默認值)} 決定SQL*PLUS在每一顯示行的末端是否容許帶空格. ON時將每行尾部的空格去了,特別當從慢速的通訊設備存取SQL*PLUS時可改進性能; OFF時容許SQL*PLUS顯示尾部的空格.TRIMOUT ON 不影響假脫機輸出. 設置TAB ON時,SQL*PLUS忽略TRIMOUT ON.
(45)UND[ERLINE] {-(默認值)|C|OFF|ON(默認值)} 設置用在SQL*PLUS報表中下劃線列標題的字符. ON或OFF將下劃線置成開或關.
(46)VER[IFY] {OFF|ON(默認值)} 控制SQL*PLUS用值替換前、後是否列出命令的文本. ON時顯示文本;OFF時禁止列清單.
(47)WRA[P] {OFF|ON(默認值)} 控制SQL*PLUS是否截斷數據項的顯示. OFF時截斷數據項;ON時容許數據項纏繞到下一行. 在COLUMN命令中使用WRAPPED和TRUNCATED子句可控制對指定列的WRAP的設置.