第十三章 sqlplus命令(二)

to_be_Dba發表於2013-01-31

26.INPUT
I[NPUT] [text]
iSQLPlus中不能用
在緩衝區後面新增行,若需新增多行,可以輸入input,回車後輸入其他內容,以空行表示結束


27.LIST
L[IST] [n | n m | n * | n LAST | * | * n | * LAST | LAST]
*表示當前行


28.PASSWORD
PASSW[ORD] [username]
如果為輸入使用者名稱,表示當前使用者
該語句用於修改密碼


29.PAUSE
暫停
PAU[SE] [text]


30.PRINT
PRI[NT] [variable ...]
不跟變數表示顯示所有繫結變數
如果要設定自動顯示繫結變數,可以用語句set autoprint on

SQL> variable n number
SQL> begin
  2  :n:=1;
  3  end;
  4  /

PL/SQL procedure successfully completed.

SQL> print

         N
----------
         1


31.PROMPT
PRO[MPT] [text]
將內容顯示在螢幕上


32.RECOVER
RECOVER {general | managed | BEGIN BACKUP | END BACKUP}
where the general clause has the following syntax:
[AUTOMATIC] [FROM location]
{ {full_database_recovery | partial_database_recovery | LOGFILE filename}
[ {TEST | ALLOW integer CORRUPTION | parallel_clause } [TEST | ALLOW integer CORRUPTION |
parallel_clause ]...]
| CONTINUE [DEFAULT] | CANCEL}
where the full_database_recovery clause has the following syntax:
[STANDBY] DATABASE
[ {UNTIL {CANCEL | TIME date | CHANGE integer} | USING BACKUP CONTROLFILE}
[UNTIL {CANCEL | TIME date | CHANGE integer} | USING BACKUP CONTROLFILE]...]
where the partial_database_recovery clause has the following syntax:
{TABLESPACE tablespace [, tablespace]...
| DATAFILE {filename | filenumber} [, filename | filenumber]...
| STANDBY {TABLESPACE tablespace [, tablespace]...
| DATAFILE {filename | filenumber} [, filename | filenumber]...}
UNTIL [CONSISTENT WITH] CONTROLFILE }
where the parallel clause has the following syntax:
{ NOPARALLEL | PARALLEL [ integer ] }
where the managed clause has the following syntax:
MANAGED STANDBY DATABASE recover_clause | cancel_clause | finish_clause
where the recover_clause has the following syntax:
{ { DISCONNECT [ FROM SESSION ] | { TIMEOUT integer | NOTIMEOUT } }
| { NODELAY | DEFAULT DELAY | DELAY integer } | NEXT integer
| { EXPIRE integer | NO EXPIRE } | parallel_clause
| USING CURRENT LOGFILE | UNTIL CHANGE integer
| THROUGH { [ THREAD integer ] SEQUENCE integer
| ALL ARCHIVELOG | { ALL | LAST | NEXT } SWITCHOVER} }
[ DISCONNECT [ FROM SESSION ] | { TIMEOUT integer | NOTIMEOUT }
| { NODELAY | DEFAULT DELAY | DELAY integer } | NEXT integer
| { EXPIRE integer | NO EXPIRE } | parallel_clause
| USING CURRENT LOGFILE | UNTIL CHANGE integer
| THROUGH { [ THREAD integer ] SEQUENCE integer
| ALL ARCHIVELOG | { ALL | LAST | NEXT } SWITCHOVER} ] ...
where the cancel_clause has the following syntax:
CANCEL [IMMEDIATE] [WAIT | NOWAIT]
where the finish_clause has the following syntax:
[ DISCONNECT [ FROM SESSION ] ] [ parallel_clause ]
FINISH [ SKIP [ STANDBY LOGFILE ] ] [ WAIT | NOWAIT ]
where the parallel_clause has the following syntax:
{ NOPARALLEL | PARALLEL [ integer ] }


比較常用的子句包括:
recover database until cancel|time xxxx|using backup controlfile

要求:
恢復整個資料庫時,資料庫應該是mounted、關閉狀態,所有待恢復的表空間是線上狀態;
媒介恢復表空間時,資料庫是mounted、開啟狀態,表空間是離線狀態;
媒介恢復資料檔案時,資料庫可以是開啟或mounted狀態,損壞的資料檔案是離線狀態,除非是system表空間的資料文


33.REMARK
註釋部分,後面跟著註釋內容,如果以-結尾,將被看做轉行符,下一行也會認為是註釋


34.REPFOOTER
REPF[OOTER] [PAGE] [printspec [text | variable] ...] | [ON | OFF]

printspec的內容如下:
COL n
S[KIP] [n]
TAB n
LE[FT]
CE[NTER]
R[IGHT]
BOLD
FORMAT text

指定報告末尾的內容


35.REPHEADER
REPH[EADER] [PAGE] [printspec [text | variable] ...] | [ON | OFF]

printspec的內容:
COL n
S[KIP] [n]
TAB n
LE[FT]
CE[NTER]
R[IGHT]
BOLD
FORMAT text

設定報告開頭的內容


36.RUN
顯示並執行緩衝區中的命令


37.SAVE
iSQLPlus中不能用
SAV[E] [FILE] file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]]
將緩衝區中的內容儲存到作業系統檔案中,file、create一般可以省略


通過以下例項可以幫助理解:
SQL> select * from emp
  2  where deptno=10
  3  order by ename
  4 
SQL> save a.sql
Created file a.sql
SQL> l  
  1  select * from emp
  2  where deptno=10
  3* order by ename
SQL> save a.sql
SP2-0540: File "a.sql" already exists.
Use "SAVE filename[.ext] REPLACE".
SQL> save a.sql replace
Wrote file a.sql
SQL> save a.sql append
Appended file to a.sql
SQL> host cat a.sql
select * from emp
where deptno=10
order by ename
/
select * from emp
where deptno=10
order by ename
/

 

38.SET
SET system_variable value
作用包括:
設定html的格式
設定是否顯示列標題
設定每頁的行數
設定資料寬度

 

39.SHOW
顯示設定資訊,選項包括:
system_variable  系統變數
ALL  所有設定
BTI[TLE] 頁首
ERR[ORS] [ { FUNCTION | PROCEDURE | PACKAGE | PACKAGE BODY | TRIGGER| VIEW | TYPE | TYPE BODY |

DIMENSION | JAVA CLASS } [schema.]name]  最近一次執行的錯誤或特定物件的錯誤資訊
LNO  當前行號
PARAMETERS [parameter_name]  顯示某個引數
PNO 頁碼
RECYC[LEBIN] [original_name] 顯示垃圾箱中可以通過flashback before drop恢復的物件
REL[EASE]  sqlplus版本
REPF[OOTER] 報告尾設定
REPH[EADER] 報告頭設定
SGA
SPOO[L] (Not available in iSQL*Plus) 檢視結果是否儲存到檔案中
SQLCODE
TTI[TLE]
USER


40.SHUTDOWN
SHUTDOWN [ABORT | IMMEDIATE | NORMAL | TRANSACTIONAL [LOCAL]]


41.SPOOL
SPO[OL] [file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT]
spool out表示停止spooling並將結果顯示出來


42.START
STA[RT] {url | file_name[.ext] } [arg...]


43.STARTUP

STARTUP options | upgrade_options

options:
[FORCE] [RESTRICT] [PFILE=filename] [QUIET] [ MOUNT [dbname] |
[ OPEN [open_options] [dbname] ] | NOMOUNT ]

open_options:
READ {ONLY | WRITE [RECOVER]} | RECOVER

upgrade_options:
[PFILE=filename] {UPGRADE | DOWNGRADE} [QUIET]

在shutdown abort後使用startup force
restrict只允許當前使用者使用,即獨佔模式。啟動後可以使用alter system命令切換到正常
QUIET表示靜默啟動
升級後第一次啟動時,指定startup open upgrade,並設定初始化引數。


44.STORE
STORE SET file_name[.ext] [ CRE[ATE | REP[LACE] | APP[END]]
iSQLPlus中不能用
儲存當前的sqlplus環境設定


45.TIMING
TIMI[NG] [START text | SHOW | STOP]
記錄時間資訊,顯示當前時間或活動時間

例:
SQL> timing start tian  定義一個名稱為tian的時間
SQL> timing show  顯示當前活動的時間
timing for: tian
Elapsed: 00:00:30.86
SQL> timing stop
timing for: tian
Elapsed: 00:01:21.17

可以定義多個時間,用clear timing將所有時間清除


46.ttitle
TTI[TLE] [printspec [text | variable] ...] [ON | OFF]
printspec包括:
BOLD
CE[NTER]
COL n
FORMAT text
LE[FT]
R[IGHT]
S[KIP] [n]
TAB n

可以使用的variable包括sql.pno\sql.lno\sql.release\sql.sqlcode\sql.user


47.UNDEFINE
UNDEF[INE] variable ...
刪除一個或多個變數定義


48.VARIABLE
VAR[IABLE] [variable [NUMBER | CHAR | CHAR (n [CHAR | BYTE]) | NCHAR | NCHAR (n)
| VARCHAR2 (n [CHAR | BYTE]) | NVARCHAR2 (n) | CLOB | NCLOB | REFCURSOR
| BINARY_FLOAT | BINARY_DOUBLE] ]


49.WHENEVER OSERROR
WHENEVER OSERROR {EXIT [SUCCESS | FAILURE | n | variable | :BindVariable]
[COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE]}
當作業系統錯誤時(如寫入檔案錯誤),進行什麼操作

如:以下語句,當發生作業系統錯誤時退出登入
SQL> whenever oserror exit
SQL> start no_such_file
O/S Message: No such file or directory
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@localhost ~]$

 

50.WHENEVER SQLERROR
WHENEVER SQLERROR {EXIT [SUCCESS | FAILURE | WARNING | n | variable| :BindVariable] [COMMIT | ROLLBACK]

| CONTINUE [COMMIT | ROLLBACK | NONE]}
我們更常遇到的可能是在語句中發生問題時進行什麼操作。

在語句發生錯誤時可以報出錯誤、回滾或提交操作、退出系統

 

 

 


set命令的補充

SET APPI[NFO]{ON | OFF | text}  設定是否對指令碼中的命令進行監控。
監控的工具是dbms_application_info包,如果設定為on,在v$session、v$sqlarea中能看到這些資料,設定為off則不

記錄這些資訊。

SET ARRAY[SIZE] {15 | n}  設定每次向資料庫中插入的資料行數,從1~5000,值越大越高效,但也會佔用更多記憶體

SET AUTO[COMMIT]{ON | OFF | IMM[EDIATE] | n} 是否自動提交DML命令

SET AUTOP[RINT] {ON | OFF}  設定繫結變數是否自動回顯

SET AUTORECOVERY [ON | OFF]  設定為on,則recover命令自動應用預設的重做日誌名作為恢復結果

SET AUTOT[RACE] {ON | OFF | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
設定跟蹤,是否顯示結果、統計資訊、執行計劃

SET BLO[CKTERMINATOR] {. | c | ON | OFF} 設定pl/sql塊的結束字元,不能為空格或文字

SET CMDS[EP] {; | c | ON | OFF}  是否能將多個命令寫在一行及分割字元

SET COLSEP { | text}  設定結果中列的分割字元

SET COM[PATIBILITY]{V7 | V8 | NATIVE} 設定資料庫sql 語句的版本

SET CON[CAT] {. | c | ON | OFF}
Sets the character used to terminate a substitution variable reference when
SQL*Plus would otherwise interpret the next character as a part of the variable
name.

SET COPYC[OMMIT] {0 | n}  設定COPY命令多少行提交一次,如果設定為零,則最後完成才提交

SET COPYTYPECHECK {ON | OFF} COPY命令執行時是否進行資料型別檢查,複製到DB2資料庫時常用

SET DEF[INE] {& | c | ON | OFF}  設定是否傳遞形式引數

SET DESCRIBE [DEPTH {1 | n | ALL}] [LINENUM {ON | OFF}] [INDENT {ON | OFF}]
是否顯示包含關係的資料型別,比如表中有一個欄位的資料型別是type的,即巢狀多個列,set describe 2後將能顯示

出第二層的資料型別

SET ECHO {ON | OFF} 是否顯示@、@@和start命令執行的過程

SET EDITF[ILE] file_name[.ext] edit的預設檔案

SET EMB[EDDED] {ON | OFF} 設定報告的開始,off表示必須在新的頁,on是任何位置

SET ESC[APE] {\ | c | ON | OFF} 設定轉義字元,off表示不設定,on表示預設值\,其緊接著的字元不會被轉義。

SET FEED[BACK] {6 | n | ON | OFF}  當指令碼返回多行時,控制顯示的行數

SET FLAGGER {OFF | ENTRY | INTERMED[IATE] | FULL}  檢查sql語句是否ANSI/ISO SQL92標準,不符合則報錯

SET FLU[SH] {ON | OFF} 設定結果是立即顯示還是最終一次性顯示,一次性顯示的結果稍好

SET HEA[DING] {ON | OFF} 報告頭資訊是否顯示

SET HEADS[EP] { | | c | ON | OFF} 設定標題列的分行字元及是否開啟

SET INSTANCE [instance_path | LOCAL] 設定預設例項路徑,只有在未連線到例項時才能設定

SET LIN[ESIZE] {80 | n}
SET LIN[ESIZE] {150 | n} in iSQL*Plus   行長度

SET LOBOF[FSET] {1 | n}   CLOB、NCLOB資料的顯示起始位置

SET LOGSOURCE [pathname] 執行恢復時歸檔日誌的位置,預設是log_archive_dest引數的值

SET LONG {80 | n} 顯示CLOB、LONG、NCLOB或XMLType值的最大長度

SET LONGC[HUNKSIZE] {80 | n}  sqlplus能接受的CLOB、LONG、NCLOB等的位元組數

SET MARK[UP] HTML [ON | OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP
{ON | OFF}] [SPOOL {ON | OFF}] [PRE[FORMAT] {ON | OFF}]
輸出html格式的文字

SET NEWP[AGE] {1 | n | NONE} 從頁開始到標題之間的空行數

SET NULL text  空值的顯示方式

SET NUMF[ORMAT] format 顯示數字的預設格式

SET NUM[WIDTH] {10 | n}  顯示數字的預設寬度

SET PAGES[IZE] {14 | n}  每頁的行數

SET PAU[SE] {ON | OFF | text} 暫停

SET RECSEP {WR[APPED] | EA[CH] | OFF}  什麼情況下用空行分隔,可以設定wrapped表示有轉行顯示時;each表示每

行之間

SET RECSEPCHAR { | c} 分離記錄的字元

SET SERVEROUT[PUT] {ON | OFF} [SIZE n] [FOR[MAT] {WRA[PPED]
| WOR[D_WRAPPED] | TRU[NCATED]}]  是否顯示dbms_output.put_line的結果

SET SHIFT[INOUT] {VIS[IBLE] | INV[ISIBLE]}  shift是否敏感的設定,不要用

SET SHOW[MODE] {ON | OFF}  當用set命令修改變數值時,是否顯示舊值和新值

SET SQLBL[ANKLINES] {ON | OFF}  是否允許命令中包含空行

SET SQLC[ASE] {MIX[ED] | LO[WER] | UP[PER]} 是否將結果顯示為大寫、小寫格式

SET SQLCO[NTINUE] {> | text}  設定轉行提示符,當我們前一行命令用減號結尾時表示命令未結束,預設第二行會以

>開頭,表示轉行提示。

SET SQLN[UMBER] {ON | OFF}   設定是否允許多行命令,如:
SQL> set sqlnumber off
SQL> select
SQL> set sqlnumber on
SQL> select
  2  /
注意差別,off時輸入一行後就結束了,而on後如果沒有結束符,繼續輸入

SET SQLPLUSCOMPAT[IBILITY] {x.y[.z]} 設定sqlplus版本

SQL*Plus Compatibility Matrix 
SET SQLPRE[FIX] {# | c}
SET SQLP[ROMPT] {SQL> | text}

SET SQLT[ERMINATOR] {; | c | ON | OFF} 設定結束符,預設是分號

SET SUF[FIX] {SQL | text}設定預設的副檔名,如SET SUFFIX TXT,然後GET EXAMPLE,將會查詢EXAMPLE.TXT文

SET TAB {ON | OFF}  空格的格式

SET TERM[OUT] {ON | OFF}  off表示@、@@、start的結果顯示到檔案而不顯示到螢幕上

SET TRIM[OUT] {ON | OFF}  每行後面是否回顯

SET TRIMS[POOL] {ON | OFF}  是否在每個spooled行後面trail

SET UND[ERLINE] {- | c | ON | OFF}   結果中標題行和結果之間的分隔標識

SET VER[IFY] {ON | OFF}  在替換語句前後是否顯示內容

SET WRA[P] {ON | OFF}  是否將內容過長的行截斷

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

相關文章