熟悉oracle的朋友都知道,SQL PLUS是一個重要的和ORACLE打交道的工具。SQL PLUS本身有很多命令,可以幫助我們做很多事情,包括產生一些規格化的報表、提供人機交互等等。下面,我就簡單地說明一下,供大家參考:
一 幫助命令
HELP可以幫助我們,查找SQL PLUS每個命令的用法
舉例:
SQL> help accept
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
ACCEPT
------
Reads a line of input and stores it in a given user variable.
ACC[EPT] variable [NUM[BER] | CHAR | DATE] [FOR[MAT] format]
[DEF[AULT] default] [PROMPT text | NOPR[OMPT]] [HIDE]
二 SQLPLUS的人機交互命令
在SQLPLUS裏可以接受用戶的輸入,最常用的命令有:
(1) ACCEPT
接受整行的數據。
舉例說明:
角本1.sql,查出工資大於輸入金額的僱員。
SET FEEDBACK OFF
SET PAUSE OFF
ACCEPT sal NUMBER PROMPT 'Please input salary(weekly): '
select employee_id,last_name,first_name,salary from employee
where salary>&sal;
在SQLPLUS 中運行
SQL> @c:/1.sql
Please input salary(weekly): 1000
old 2: where salary>&sal
new 2: where salary> 1000
EMPLOYEE_ID LAST_NAME FIRST_NAME SALARY
----------------- ------------------- ----------------------------- ----------
7499 ALLEN KEVIN 1600
7505 DOYLE JEAN 2850
7506 DENNIS LYNN 2750
7507 BAKER LESLIE 2200
7521 WARD CYNTHIA 1250
7555 PETERS DANIEL 1250
7557 SHAW KAREN 1250
7560 DUNCAN SARAH 1250
7564 LANGE GREGORY 1250
7566 JONES TERRY 2975
7569 ALBERTS CHRIS 3000
注:
① ACCEPT接受一行的輸入,並且把輸入的數據根據指定按照指定的類型存放到變量(如不存在,自動創建一個)中。
② FOMRAT用於制定輸入的數據格式,如數字可以指定’999.99’,字符可以指定長度’A10’
③ 如果類型是CHAR,長度最大240。
(2) PROMPT
輸出提示信息。
語法:PRO[MPT] [text]
舉例:
SQL> PROMPT Hello,world
Hello,world
(3) PAUSE
輸出一行信息,並等待用戶輸入回車。
舉例:
SQL> PAUSE Please press [RETURN]
Please press [RETURN]
SQL>
三 編輯命令
通過SQL PLUS發送的最後一次SQL語句都會保存在SQL PLUS的一個數據緩衝區內,而SQLPLUS命令不包括在內可以通過編輯命令進行編輯。
(1) /
重新執行一下sql 語句。
(2) APPEND
在命令緩衝區內,追加字符。
舉例:
SQL> select * from tab;
….
SQL> A WHERE tabtype='VIEW'
1* select * from tabwhere tabtype='VIEW'
SQL> /
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
PLSQL_PROFILER_GRAND_TOTAL VIEW
PLSQL_PROFILER_LINES_CROSS_RUN VIEW
PLSQL_PROFILER_NOTEXEC_LINES VIEW
PLSQL_PROFILER_UNITS_CROSS_RUN VIEW
SALES VIEW
(3) LIST或;
列出緩衝區內的內容,list可以列出某行的內容,而;則是所有的。
舉例:
SQL> ;
1 select * from tab WHERE tabtype='VIEW'
2* ORDER BY tname
SQL> l 2
2* ORDER BY tname
(4) INPUT
增加一行內容
舉例:
SQL> i ORDER BY tname
SQL> l
1 select * from tab WHERE tabtype='VIEW'
2* ORDER BY tname
(5) CHANGE
把當前行的第一個艘索到的內容替換新的內容,
語法:C[HANGE] sepchar old [sepchar [new[sepchar]]]
舉例:
SQL> l
1* select * from employee where salary>1000 and salary<2000
SQL> c/salary/sal
1* select * from employee where sal>1000 and salary<2000
注意,當緩衝區有兩行的時候,用C替換的是最後一行裏的內容。
(6) Edit
在指定的文本編輯器裏,編輯緩衝區的內容。Windows上,缺省是NOTEPAD。
(7) SPOOL
把輸出結果,指定到一個文件中,有點像DOS命令下的>
SPO[OL] [file_name[.ext] | OFF | OUT]
SQL> spool c:/1.txt
SQL> select * from tab;
SQL> spool off
四 執行命令
(1) @
載入角本,運行。
舉例:
SQL>@C:/1.SQL
(2) EXECUTE
運行PL/SQL過程和程序包。
待續。
Enhydraboy