• 爱情文章
  • 亲情文章
  • 友情文章
  • 生活随笔
  • 校园文章
  • 经典文章
  • 人生哲理
  • 励志文章
  • 搞笑文章
  • 心情日记
  • 英语文章
  • 范文大全
  • 作文大全
  • 新闻阅读
  • 当前位置: 山茶花美文网 > 爱情文章 > 正文

    【oracle替代变量】oracle定义变量

    时间:2020-05-27来源:山茶花美文网 本文已影响 山茶花美文网手机站

    替换变量是指在进行数据查询或更新时,由用户自己输入数据,在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")

    • 爱情文章
    • 亲情文章
    • 友情文章
    • 随笔
    • 哲理
    • 励志
    • 范文大全