二 SQLPLUS的人机交互命令 在SQLPLUS里可以接受用户的输入,最常用的命令有: (1) ACCEPT 接受整行的数据。 语法:ACC[EPT] variable [NUM[BER]|CHAR|DATE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text|NOPR[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 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。
(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