2.3.3 与变量有关的交互式命令
SQL*Plus还提供了几条交互式命令,主要包括prompt、accept和pause。这几条命令主要用在文本文件中,用来完成灵活的输入输出。
prompt命令用来在屏幕上显示指定的字符串。这条命令的格式为:prompt 字符串
注意这里的字符串不需要单引号限定,即使是用空格分开的几个字符串。prompt命令只是简单地把其后的所有内容在屏幕上显示。例如:SQL>prompt I'm a programmer
I'm a programmer
accept命令的作用是接收用户的键盘输入,并把用户输入的数据存放到指定的变量中,它一般与prompt命令配合使用。accept命令的格式为:accept 变量名 变量类型 prompt 提示信息 选项
其中变量名是指存放数据的变量,这个变量不需要事先定义,可直接使用。变量类型是指输入的数据的类型,目前SQL*Plus只支持数字型、字符型和日期型数据的输入。prompt用来指定在输入数据时向用户显示的提示信息。选项指定了一些附加的功能,可以使用的选项包括:hide和default。hide功能使用户的键盘输入不在屏幕上显示,这在输入保密信息时非常有用。default为变量指定默认值,在输入数据时如果直接回车,则使用该默认值。
例如,希望从键盘输入一个数字型数据到变量xyz,在输入之前显示指定的提示信息,还为变量指定默认值,这样如果在输入数据时直接回车,那么变量的值就是这个默认值。对应的accept命令的形式为:SQL>accept xzy number prompt 请输入变
量xyz的值: default 0
请输入变量xyz的值:100
pause命令的作用是使当前的执行暂时停止,在用户输入回车键后继续。一般情况下pause命令用在文本文件的两条命令之间,使***条命令执行后出现暂停,待用户输入回车键后继续执行。pause命令的格式为:
pause 文本
其中文本是在暂停时向用户显示的提示信息。
现在,我们构造一个文本文件,演示这几条命令的用法。文本文件e.sql的功能是统计某个部门的员工工资,部门号需要用户从键盘输入。文本文件的内容如下:prompt 工资统计现在开始
accept dno number prompt 请输入部门号: default 0
pause 请输入回车键开始统计...
SELECT ename,sal FROM emp WHEREdeptno=&dno;
这个脚本文件的执行过程为:SQL>@/home/oracle/e
工资统计现在开始
请输入部门号:10
请输入回车键开始统计...
原值1: SELECT ename,sal FROM emp WHEREdeptno=&dno
新值1: SELECT ename,sal FROM emp WHEREdeptno=10
ENAME SAL
---------- ----------
CLARK 2450
KING 5000
MILLER 1300
如果希望生成一个报表,那么可以在SELECT前后分别加上spool命令,将统计的结果写到一个文件中,或者发往打印机。
【责任编辑:云霞 TEL:(010)68476606】
点赞 0