ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sql_plus操作命令7

sql_plus操作命令7

原创 Linux操作系统 作者:wwd_wang 时间:2009-10-07 10:17:52 0 删除 编辑

6.交互式命令

    如果经常要执行某些sql语句和sql*plus命令,可以将这些语句和命令存放到sql脚本中。通过使用sql脚本,

   一方面可以降低命令输入量,另一方面可以避免用户的输入错误。为了使得sql脚本可以根据不同输入获得

   不同结果,需要在sql脚本中包含交互式命令。通过使用交互式命令,可以在sql*plus中定义变量,并且在运行

   sql脚本时可以为这些变量动态输入数据。下面介绍sql*plus的交互命令,以及引用变量所使用的标号。

  (1)&

    引用替代变量(substitution variable)时,必须要带有该标号。如果替代变量已经定义,则会直接使用其数据,

    如果替代变量没有定义,则会临时定义替代变量(该替代变量只在当前语句中起作用),并需要为其输入数据。

    注:如果替代变量为数字列则提供数据,则可以直接引用;如果替代变量为字符类型列或日期类型列提供数据,

    则必须要用单引号引注。eg:

SQL> select ename,sal from emp where deptno=&no and job='&job';

输入 no 的值:  20

输入 job 的值:  CLERK

原值    1: select ename,sal from emp where deptno=&no and job='&job'

新值    1: select ename,sal from emp where deptno=20 and job='CLERK'

   (2)&&

   该标号类似于单个&标号。但需要注意,&标号所定义的替代变量只在当前语句中起作用;而&&标号所定义的变量

会在当前sql*plus环境中一直生效。eg:

  SQL> select ename,sal from emp where deptno=&&no and job='&&job'  --定义了no变量

输入 no 的值:  20

输入 job 的值:  CLERK

原值    1: select ename,sal from emp where deptno=&&no and job='&&job'

新值    1: select ename,sal from emp where deptno=20 and job='CLERK'

SQL> select ename,sal from emp where deptno=&no;           

原值    1: select ename,sal from emp where deptno=&no             --直接引用no变量

新值    1: select ename,sal from emp where deptno=20

ENAME             SAL

---------- ----------

SMITH             800

JONES            2975

SCOTT            3000

ADAMS            1100

FORD             3000

如例所示,当第一次引用no变量时,使用&&标号需要为其输入数据;当第二次引用no变量时,

使用&标号直接引用其原有值,而不需要输入数据。

(3)define

  该命令用于定义类型为char的替代变量,而且该命令的定义的替代变量只在当前sql*plus环境中起作用。

当使用该命令定义变量时,如果变量值包含空格或区分大小写,则用引号引注。另外,使用"define变量名"可以检查变量

是否已经定义。eg:

sql>set verify off

sql>define title=CLERK

sql>select ename,sal from where job='&title';

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12137615/viewspace-616060/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: sql_plus操作命令6
下一篇: sql_plus操作命令8
请登录后发表评论 登录
全部评论

注册时间:2008-05-08

  • 博文量
    236
  • 访问量
    233982