SQL语句中的运行时参数

来源:互联网 发布:代号美洲豹 知乎 编辑:程序博客网 时间:2024/05/29 04:05

运行时参数

一、运行时参数的使用

    sql语句中的值,我们可以使用一个参数来代替,然后每次运行的时候都可以重新输入这个值   
    例如:   
select last_name,salary,dept_id from s_emp where id=&id;

如上图所示,使用了运行时参数&id,其中id为变量值,如果之前没有定义,则会像图中提示的进行提示,如果以前定义过,则会直接使用定义过的值(定义的方法在后面介绍) 
select last_name,salary,dept_id from s_emp where last_name=&name;
      
 select last_name,salary,dept_id from s_emp where last_name='&name';

结果如下所示:


对于以上字符的输入时,请注意‘’单引号的区别,当sql语句中没有单引号时,则需要自己输入,如果有单引号,则不许再输入单引号,直接输入要查询的字符串即可 

  select last_name,salary,dept_id from s_emp where salary>&a and salary<&b;

结果如下所示:

当然还能够进行直接输入表达式: 

  select last_name,salary,dept_id from s_emp where &con;

如上图就是直接填入salary>1200的表达式,当然还可以填入其它表达式,但是要注意的是,此事就不能够在后面再添加;号,否则会出现如下错误:


如下也是直接填入条件的演示   
select last_name,salary,dept_id from s_emp &cons;

结果如下图所示:


    注意:&变量名 表示使用这个oracle定义的变量,如果这个变量之前没有定义过,那么这个时候会让你重写输入这个变量的值.如果之前有定义过,那么就是要之前定义过的值
二、运行时参数的定义   
    define undefine accept prompt命令
    例如:
    命令def可以定义一个变量
    定义变量:         def A=s_emp
    查看定义的变量:  def

    取消定义的变量:  undef A

注:s_emp是数据库中已经存在一张表,在这里定义了一个新的变量A,然后变量A之前定义过,那么这里会之前替换为之前定义的值   

select id,last_name,salary from &A;

    accept命令也可以定义一个变量,而且变量的值需要用户再次输入
    例如:
    accept A

    回车之前需要用户再次输入变量A的值,之后可以使用def命令来查看刚刚定义的A变量

如下图所示,为使用accept命令定义变量,并且使用def进行查看变量:


    prompt可以在用户输入的时候显示一个提示信息:
    例如:

    accept name prompt '请输入name变量的值: '


    hide可以隐藏用户的输入内容不被看见
    例如:

    accept name prompt '请输入name变量的值: ' hide


    注意:这些定义的都是临时变量,sqlplus退出后重新登录进来就没有了


1 0
原创粉丝点击