运行时参数

一、运行时参数的使用

    sql语句中的值,我们可以使用一个参数来代替,然后每次运行的时候都可以重新输入这个值   


    例如:   

select last_name,salary,dept_id from s_emp where id=&id;




sql server参数设定 sql设置参数_单引号


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

select last_name,salary,dept_id from s_emp where last_name=&name;



sql server参数设定 sql设置参数_sql语句_02

      


select last_name,salary,dept_id from s_emp where last_name='&name';

结果如下所示:

sql server参数设定 sql设置参数_sql_03

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

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

结果如下所示:

sql server参数设定 sql设置参数_运行时参数_04

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

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



sql server参数设定 sql设置参数_sql_05



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

sql server参数设定 sql设置参数_sql_06

如下也是直接填入条件的演示   

select last_name,salary,dept_id from s_emp &cons;

结果如下图所示:

sql server参数设定 sql设置参数_sql语句_07

    注意:&变量名 表示使用这个oracle定义的变量,如果这个变量之前没有定义过,那么这个时候会让你重写输入这个变量的值.如果之前有定义过,那么就是要之前定义过的值


二、运行时参数的定义   


    

define undefine accept prompt命令


    例如:


    命令def可以定义一个变量


    定义变量:         def A=s_emp


    查看定义的变量:  def


    取消定义的变量:  undef A

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

select id,last_name,salary from &A;



sql server参数设定 sql设置参数_单引号_08


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


    例如:


    accept A


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

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

sql server参数设定 sql设置参数_sql_09

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


    例如:


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

sql server参数设定 sql设置参数_sql_10

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


    例如:


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

sql server参数设定 sql设置参数_sql server参数设定_11

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