Oracle sqlplus設定顯示格式命令詳解

ewelamb發表於2012-10-23

透過指定的引數,執行指定的命令檔案

  ACC[EPT] 變數 [DEF[AULT] 值] [PROMPT 文字 | NOPR[OMPT]]

  允許使用者輸入置換變數的值

  CL[EAR] [SCR[EEN]]

  清除螢幕

  CL[EAR] SQL

  清除 SQL 緩衝區

  COL[UMN] [列] [格式] [NEW_VALUE 變數]

  定義一個列的格式,顯示一個列的格式,或者顯示所有列格式

  CON[NECT] [使用者名稱/口令@資料庫]

  帶有指定使用者連線到資料庫

  DEF[INE] [變數] [ = 文字]

  定義置換變數,顯示一個變數,或者顯示所有置換變數。

  DESC[RIBE] 物件

  給指定物件一個描述

  DISC[CONNECT]

  從資料庫斷開

  EDIT

  顯示文字編輯器以編輯 SQL 緩衝區

  EXEC[UTE] 過程

  執行指定的過程

  EXIT [APPLICATION]

  退出正在執行的指令碼或關閉命令視窗,新增APPLICATION 引數也將關閉 PL/SQL Developer 。

  GET [檔名]

  載入命令檔案到編輯器

  HOST [命令]

  執行主機命令

  HELP [關鍵詞]

  對關鍵詞提供 SQL 幫助

  PAUSE [資訊]

  顯示資訊和暫停,直到使用者按確定或取消按鈕為止

  PRI[NT] [變數]

  顯示繫結變數或所有繫結變數的值

  PROMPT [文字]

  顯示指定文字

  QUIT [APPLICATION]

  退出正在執行的指令碼或關閉命令視窗,新增APPLICATION 引數也將關閉 PL/SQL Developer 。

  R[UN]

  執行 SQL 緩衝區

  REM[ARK] [文字]

  一個註釋行

  SET AUTOP[RINT] [ON | OFF]

  確定繫結變數在執行了 SQL 語句或 PL/SQL 塊以後是否自動地被顯示出來。

  SET COLSEP [分隔符 | OFF]

  確定了列分隔符(預設 = “ ”)。

  SET CON[CAT] [字元 | ON | OFF]

  確定終止置換變數參照的字元(預設=.)

  SET DEF[INE] [字元 | ON | OFF]

  確定開始置換變數參照的字元(預設=&)

  SET ECHO [ON | OFF]

  確定在指令碼里已執行的命令是否被顯示出來

  SET ESC[APE] [字元 | ON | OFF]

  確定中斷開始置換變數參照字元的字元(預設=\)

  SET FEED[BACK] [ON | OFF]

  確定 SQL 語句受影響行數是否被顯示出來

  SET HEA[DING] [ON | OFF]

  確定在結果集列上面的標題是否被顯示出來

  SET LONG [寬度]

  確定一個 LONG 列的最大顯示寬度

  SET NUM[WIDTH] [寬度]

  確定不帶精度的數字列的最大顯示寬度

  SET PAGES[IZE] [大小]

  確定在標題被重複以前的結果集的顯示行數

  SET PROMPT [提示]

  替換標準的 SQL> 提示,改為你也能使用變數 [user] 、 [db] 或 [connection] 的文字文字。此外,你還可以包括一個繫結變數( set prompt :bind_var_name )。

  SET SCAN [ON | OFF]

  確定置換變數是否應該被掃描

  SET SERVEROUT[PUT] [ON | OFF] [SIZE n]

  確定呼叫 dbms_output.put_line 的輸出是否被顯示出來,並且輸出緩衝區的大小是多少。

  SET SPOOL*DIRECTORY [目錄]

  確定如果 SPOOL 命令沒有指定一個絕對路徑那麼假離線檔案應該被儲存在哪一個目錄裡。

  SET TERM[OUT] [ON | OFF]

  確定已執行的 SQL 語句的輸出是否被顯示出來

  SET TIMI[NG] [ON | OFF]

  確定關於已執行的 SQL 語句的計時資訊是否被顯示出來

  SET VER[IFY] [ON | OFF]

  確定當被用於 SQL 語句或 PL/SQL 塊的時候置換變數是否被顯示出來。

  SHO[W] ERR[ORS] [型別名]

  顯示以前編譯或者指定物件的錯誤

  SHO[W] REL[EASE]

  顯示當前連線的  版本資訊

  SHO[W] SQLCODE

  顯示已執行的 SQL 語句的結果程式碼

  SHO[W] USER

  顯示當前連線的使用者名稱

  SPO[OL] [檔名 | OFF]

  開始或停止假離線

  STA[RT] [檔名] [引數列表]

  透過指定的引數,執行指定的命令檔案

  STORE SET [檔名]

  在[檔名]裡所有選項的值,你可以以後執行這個檔案以恢復這些選項。

  UNDEF[INE] 變數

  不定義已設定的置換變數

  VAR[IABLE] [變數] [資料型別]

  定義一個繫結變數,顯示一個繫結變數或顯示所有的繫結變數。

  WHENEVER [OSERROR | SQLERROR] [動作]

  指定一個動作,用於無論 OS 或 SQL 何時出現錯誤。這個動作既可以是 EXIT 又可以是 CONTINUE ,隨便地被 COMMIT 或 ROLLBACK 跟隨著。

  上面所有這些命令函式都與 SQL*Plus 相同。下面的命令是 PL/SQL Developer 特有的:

  命令

  含義

  BEAUT[IFY] 檔案 | 物件

  使用當前規則或者 SET BEAUTIFIERRULES 命令指定的規則來美化指定檔案或資料庫物件。

  BROWSE 物件

  在物件瀏覽器裡選擇物件

  EDIT 物件

  開啟帶有物件定義的可編輯視窗

  EDITD[ATA] 表 | 檢視

  為帶有可編輯結果集的表或檢視開啟一個 SQL 視窗

  EXPORT[DATA] 表

  為指定表開啟匯出工具

  INFO

  顯示關於連線的資訊

  PROP[ERTIES] 物件

  為指定物件顯示一個屬性視窗

  QUERY[DATA] 表 | 檢視

  為帶有隻讀結果集的表或檢視開啟一個 SQL 視窗

  REC[OMPILE] 物件

  重新編譯物件

  SET BEAUT[IFIERRULES] [檔案]

  臨時使用來自於指定檔案的美化器規則,這可以帶著BEAUTIFY 命令使用。

  SET COL[WIDTH] [寬度]

  確定結果集裡的最大列寬。如果 Width = 0 ,則不限制寬度。預設為 80 。

  SET EXEC[PAUSE] [ON | OFF]

  在下一個命令暫停執行( ON ),或者在下一個命令正常繼續執行( OFF )。

  SQLPLUS

  帶有當前檔案呼叫 SQL*Plus 。

  TEST 程式單元

  對於指定的程式單元,開啟一個帶有標準指令碼的視窗。

  VIEW 物件

  開啟一個帶有物件定義的只讀視窗



生產環境的db沒法直接用開發工具(比如TOAD、PL/SQL Developer )來連線並進行資料操作,因為有很嚴格的許可權控制(為了db安全考慮),我們開發人員能用的唯一工具就是透過sshterm登入到db server上面,然後用指定的受限使用者名稱透過sqlplus登入,然後進行操作;習慣了使用開發工具的便利,初次回到sqlplus的話會非常不習慣,但只要我們設定一些簡單的引數,就可以大大提高sqlplus的可用性;
另外,就是需要從db中匯出資料到檔案,預設情況下,匯出檔案中會有很多的垃圾資訊,我們需要將他清理掉,此時相關的設定就很有作用啦;

sqlplus的最佳化主要是透過兩種方式來進行:
1、系統引數設定,透過set操作實現(可以搭配show檢視配置項,show all可檢視所有系統引數設定列表),比如set linesize 180;
2、顯示格式設定,透過column操作實現,比如column aa format a32;
3、Session引數設定,透過SQL操作實現,比如alter session set ...;

下面介紹下常用sqlplus set引數列表,更全面的set集合請參考oracle官方文件;
set linesize 180                設定每行顯示的字元總數
set pagesize 100             設定每頁顯示的行數
set feedback on/off          設定是否顯示已選擇XX行
set heading on/off            設定是否顯示列名
set time on/off                   設定是否顯示當前系統時間
set timing on/off                設定是否顯示每條SQL執行消耗的時間
set termout on/off             設定在執行sql檔案時是否在控制檯列印相關資訊
set trimout on/off              設定是否去除標準輸出每行的拖尾空格
set trimspool on/off         設定是否去除spool輸出檔案中每行的拖尾空格

顯示格式的設定主要由column命令完成,其語法為:
column columnName [format format] [heading heading]
比如column login_id format a32 heading 旺旺ID
其中heading 旺旺ID 表示結果集中login_id欄位名顯示為:旺旺ID;
功能與SELECT LOGIN_ID AS 旺旺ID FROM ...一樣;

Session引數的設定就很專業和複雜了,一般開發人員不會涉及到,但是有兩個引數我們可以自行設定;
其一是設定日期時間型欄位的顯示格式,在sqlplus中執行一下命令即可:
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
其二是設定當前session的字元編碼(編碼隨各DB會有不同),以便能夠顯示中文;比如執行以下命令:
alter session set nls_lang='AMERICAN_AMERICA.ZHS16GBK';
當然,這兩個引數也可以直接放在OS當前使用者的環境變數中,這樣就不必每次進入sqlplus之後還需要重複執行以上的命令,會方便很多;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7191998/viewspace-747040/,如需轉載,請註明出處,否則將追究法律責任。

相關文章