一般在SQL>下進行SQLPLUS 操作,都需要進行必要的環境設置才能完成我們所需要的輸出。所有環境的設置由 SET命令加相應的環境變量來完成。下面是常用的環境設置:
§2.5.1 ARRAYSIZE(取回的行數) SET ARRAY[SIZE]{integer} 一次可以提取(Fetch)的行的數目,1->5000,當有較長字段時應設小些。 §2.5.2 AUTOCOMMIT(自動提交) SET AUTO [COMMIT] { [ OFF | ON | IMM | n] } 用於在操作中是自動提交或是部分提交或是不自動提交。 1) 或IMM使得在完成每條SQL語句時將未提交的改變立刻提交給數據庫系統。ON 2) 允許在用戶發出COMMIT後,可以執行命令的數量(將n條SQL語句所做的改變進行提交)。N 3) 停止自動提交,用戶必須用COMMIT命令才能被提交。OFF §2.5.3 LINESIZE(行顯示寬度) 可以設置 LINESIZE 環境變量來控制行的顯示寬度,缺省是80個字符。 SET Lin[esize]{80|integer} Integer = 設置行寬度(字符個數),最大值999,如: SQL>set linesize 160 §2.5.4 LONG(長類型顯示字節數) 在缺省的SQL> 狀態下,SQL>緩沖區用於顯示LONG 的字節數只有80個字符。如果我們需要查詢的列中含有 LONG類型的字段的話,就需要將LONG緩沖區設置大些。 SET LONG{80|integer} Integer 是 顯示或拷貝long值的最大寬度, n=1->32767(但必須小於Maxdata值) SQL>show Maxdata (最大行寬) SQL>set long 2000 §2.5.5 PAGESIZE(頁行數) 在缺省的SQL> 狀態下,SQL>緩沖區顯示頁的行數是24行,其中22行顯示數據,2行顯示標題和橫線。我們將pagesize 設置大些以減少提示標題和橫線。 SET pag[esize] {24|integer} SQL>SET pagesize 66 §2.5.6 PAUSE(暫停) 可以設置 PAUSE 為ON 或OFF來控制屏幕顯示。當設置為ON 時,在select 語句發出後需要按Enter鍵才能顯示一屏。 SET PAUSE [ ON | OFF ] SQL> set pause on 提示:在發出select 語句並按Enter鍵後 還要再按Enter鍵才能顯示結果. §2.5.7 SPACE(列間空格) 可用 set space 來設置各列間的空格數,語法為: SET SPA[CE] {1|n} N為設置輸出行列間的空格數,最大為10。 SQL>set space 2 建議:在一般情況下,不用設置space參數。 §2.5.8 Termout (啟/停屏幕顯示) TERMOUT用於設置在屏幕上顯示或不顯示所輸出的信息。 SET TERMOUT { ON | OFF } set termout off set termout on set termout off 常用SPOOL XXX時,即關閉報表在屏幕上的顯示(節省時間) set termout on 常用SPOOL off之後,即恢復報表在屏幕上的顯示 §2.5.9 ECHO (啟/停命令顯示) 可以用ECHO命令來顯示或不顯示所執行的SQL命令。語法如: SET ECHO{OFF|ON} 顯示執行當中的各命令( 即用start 時) set echo 受到 set termout 的影響 set pagesize 100 set echo on select table_name from dict where rownum<20; select * from cat where rownum<30; set echo off --下面只顯示結果不顯示命令: select table_name from dict where rownum<20; select * from cat where rownum<30; §2.5.10 TRANSACTION (啟動事務) 一個很重要的事務環境設置是TRANSACTION。它包括兩個部分的內容: SET TRANSACTION { READ ONLY | USE ROLLBACK SEGMENT segment_name } READ ONLY 是用於保證讀的一致性。即其他用戶的修改不影響當前查詢結果。 USE ROLLBACK SEGMENT segment_name 是為當前所處理的事務指定專門的回滾段。這主要是在進行大量的Insert 或Delete 或Update時,需要一個大的回滾段以保證事務正常完成。詳細見數據庫管理員。 §2.5.11 SHOW ALL(列出所有參數) 可以用SHOW ALL 來顯示當前的所有參數情況。它的用法很簡單。比如: SQL> show all appinfo為ON並且已設置為"SQL*Plus" arraysize 15 autocommit OFF autoprint OFF autorecovery OFF autotrace OFF blockterminator "." (hex 2e) btitle OFF and 為下一條 SELECT 語句的前幾個字符 cmdsep OFF colsep " " compatibility version NATIVE concat "." (hex 2e) copycommit 0 COPYTYPECHECK 為 ON define "&" (hex 26) describe DEPTH 1 LINENUM OFF INDENT ON markup HTML OFF SPOOL OFF ENTMAP ON PREFORMAT OFF echo OFF editfile "afiedt.buf" embedded OFF escape OFF flagger OFF flush ON heading ON headsep "|" (hex 7c) instance "local" linesize 80 lno 14 loboffset 1 logsource "" long 80 longchunksize 80 newpage 1 null "" numformat "" numwidth 10 pagesize 14 PAUSE 為OFF pno 0 recsep WRAP recsepchar " " (hex 20) release 801070000 repfooter OFF and 為 NULL repheader OFF and 為 NULL serveroutput OFF shiftinout INVISIBLE showmode OFF spool OFF sqlblanklines OFF sqlcase MIXED sqlcode 0 sqlcontinue "> " sqlnumber ON sqlprefix "#" (hex 23) sqlprompt "SQL> " sqlterminator ";" (hex 3b) suffix "sql" tab ON termout ON time OFF timing OFF trimout ON trimspool OFF ttitle OFF and 為下一條 SELECT 語句的前幾個字符 underline "-" (hex 2d) USER 為"SYS" verify ON wrap : 行將為已換行 SQL> 你可以從上面的參數中看到其當前值,也可以修改某些參數的值。