SQLPlus命令使用指南(一)
熟悉Oracle的朋友都知道,SQL PLUS是一个重要的和ORACLE打交道的工具。SQL PLUS本身有很多命令,可以帮助我们做很多事情,包括产生一些规格化的报表、提供人机交互等等。下面,我就简单地说明一下,供大家参考:
一 帮助命令
HELP可以帮助我们,查找SQL PLUS每个命令的用法
举例:
SQL> help accept
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
接受整行的数据。
语法:ACC[EPT] variable [NUM[BER]CHARDATE] [FOR[MAT] format]
[DEF[AULT] default] [PROMPT textNOPR[OMPT]] [HIDE]
举例说明:
角本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
old2: where salary>&sal
new2: where salary>;;;1000
EMPLOYEE_ID LAST_NAME;FIRST_NAME; SALARY
----------------- ------------------- ----------------------------- ----------
;;;;;7499 ALLENKEVIN 1600
7505 DOYLEJEAN; 2850
7506 DENNIS; LYNN; 2750
7507 BAKERLESLIE;;;;;2200
7521 WARD;CYNTHIA;;;;1250
7555 PETERS; DANIEL;;;;;1250
7557 SHAW;KAREN 1250
7560 DUNCAN; SARAH 1250
7564 LANGEGREGORY;;;;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
输出一行信息,并等待用户输入回车。
语法:PAU[SE] [text]
举例:
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_LINESVIEW
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
enhydraboy@yahoo.com.cn