select * from tb1 where id=&a 当我们执行这样的语句的时候,会提示我们输入a的值 如果我们define a=1之后 再执行 就不会提示输入a的值了
例如: set define off--关闭用户变量 set define &--设定用变量字符,如果sql中出现&,则认为需要用户手动输入变量值 select * from dual where dummy='&V';--sqlplus会认为V是个变量,需要用户手动输入值.如果define是关闭的,Oracle直接找dummy='&V'的数据
你说的应该是define吧? 它是用来给替代变量赋值的. 比如select &ename,&empno from emp where ename =&en; --如果执行这语句之前没有用define的话就会提示你输入ename,empno,en的值. 如果你之前这样定义: define ename = ename --写成"ename"和写成ename是一样的 define empno = empno define en = "'scott'"--双引号里面再加单引号.写成scott,"scott"或'scott'或''scott''会出错 再执行select &ename,&empno from emp where ename =&en; 则不会要你再输入值,直接得到结果.
用户通过&或&&来输入,然后执行语句啊,要引用什么?
当我们执行这样的语句的时候,会提示我们输入a的值
如果我们define a=1之后
再执行
就不会提示输入a的值了
set define off--关闭用户变量
set define &--设定用变量字符,如果sql中出现&,则认为需要用户手动输入变量值
select * from dual where dummy='&V';--sqlplus会认为V是个变量,需要用户手动输入值.如果define是关闭的,Oracle直接找dummy='&V'的数据
它是用来给替代变量赋值的.
比如select &ename,&empno from emp where ename =&en; --如果执行这语句之前没有用define的话就会提示你输入ename,empno,en的值.
如果你之前这样定义:
define ename = ename --写成"ename"和写成ename是一样的
define empno = empno
define en = "'scott'"--双引号里面再加单引号.写成scott,"scott"或'scott'或''scott''会出错
再执行select &ename,&empno from emp where ename =&en; 则不会要你再输入值,直接得到结果.