简要咨询咨询QQ网站导航网站搜索手机站点联系我们设为首页加入收藏 

oracle替代变量

来源:易贤网   阅读:882 次  日期:2014-10-21 14:08:20

温馨提示:易贤网小编为您整理了“oracle替代变量”,方便广大网友查阅!

替换变量是指在进行数据查询或更新时,由用户自己输入数据,在oracle中用&标记,比如

select ename,job,sal,hiredate from emp where sal>&inputjob在通过sql developer执行时会出现输入提示框,这样我们就可以通过自己输入需要查询的sal>的值进行查询

上面的输入数据时整,那么如果是字符串怎么办呢?比如ename=&inputename我们要输入'数据'才可以,也就是字符串要用''包括,这样很明显不符合我们要求。

那么我们可以利用ename=upper('&inputename')这样我们就不用担心''的问题了,也不用担心大小写问题,因为在oracle中,字段是大写的。

对于sql developer的显示效果是弹出输入框,而sqlplus的效果则是直接在dos窗口中提示输入,两者显示效果不一样,但是实现功能一样。

也可以使用替代变量替代搜索关键字ename like '%&inputkeyword%'或日期hiredate < to_date('&inputhiredate','yyyy-mm-dd'),这些都只是一个替代变量,

我们也可以同时使用多个替代变量,比如job=upper('&inputjob') and sal > &inputsal,这时会依此提示两个输入让用户输入。

而且替代变量不单单只在where中可以使用,在select,from,order by,group by等字句中也可以使用。

值得注意的是在group by中使用的时候因为select中可能出现和分组字段相同的输入内容:比如

select &inputgroupbycolumn,sum(sal),avg(sal) from emp e group by &inputgroupbycolumn

这时很明显要求用户输入两次相同的数据,这样就显得比较麻烦,同一个值为什么要输入两次呢?这时我们可以将第一个用&&inputgroupbycolumn代替。

这样就相当于定义了一个inputgroupbycolumn变量,只要第一次输入,第二次系统将自动读出这个值。但是如果想让这个定义的变量消失,我们要使用

undefine inputgroupbycolumn或者直接关闭sqlplus窗口

除了可以用&&定义替代变量外,也可以用define 变量名=值创建,比如define inputdname='accounting'这样就定义了一个inputdname的变量,值为后面字符串

查询已经定义的替代变量可以使用define inputdname

一旦定义好了替代变量我们在sql语句中就可以使用了,不用用户再输入数据select * from dept where dname='&inputdname'

撤销定义了的替换变量就是undefine inputdname

上面所有的替换变量都是使用系统的格式,而且发现替代变量的提示信息不是非常清晰,我们可以通过accept修改我们的提示信息

语法:accept 替代变量名称[数据类型] [format 格式] [prompt '提示信息'][hide]

accept的使用:建立脚本文件.sql文件,将命令写入文件,在sqlplus中使用@+文件路径执行命令

上面替代变量名称前面不需要再加&,数据类型可以是number、varchar、date型数据,format指定格式模型(如a10或9.99等)

prompt是指提示信息,hide指输入密码时不显示

如:accept inputdate date format 'yyyy-mm-dd' prompt '雇员日期:' hide,然后就可以执行自己定义的inputdate

select empno,ename,job,hiredate from emp e where hiredate=to_date('inputdate','yyyy-mm-dd')

更多信息请查看IT技术专栏

更多信息请查看数据库
点此处就本文及相关问题在本站进行非正式的简要咨询(便捷快速)】     【点此处查询各地各类考试咨询QQ号码及交流群
上一篇:oracle导入导出
下一篇:如何修改oracle并发连接数的设置
易贤网手机网站地址:oracle替代变量
由于各方面情况的不断调整与变化,易贤网提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!