• 技术文章 >数据库 >Oracle

    oracle有临时变量吗

    青灯夜游青灯夜游2022-04-18 18:05:27原创625

    oracle有临时变量。在Oracle数据库中,可以使用变量来编写通用的sql语句,如果该变量前使用了“&”和“&&”符号,那么该变量就是一个临时变量,语法为“sql语句>&变量名;”。临时变量只在使用它的sql语句中有效,变量值不能保留。

    本教程操作环境:Windows7系统、Oracle 11g版、Dell G3电脑。

    oracle有临时变量。

    在Oracle数据库中,可以使用变量来编写通用的sql语句,在运行sql语句时,为变量输入值,就会在sql语句中将变量替换成这些值。

    临时变量只在使用它的sql语句中有效,变量值不能保留,临时变量也称为替换变量。在sql语句中,如果在某个变量前面使用了“&”和“&&”符号,那么久表示该变量是一个临时变量,执行sql语句时,系统会提示用户为该变量提供一个具体的数据。

    以下是一个不使用临时变量的查询语句:

    1.png

    如果使用&来声明临时变量:

    SQL> list
      1  select &chang1,ename,job
      2  from scott.emp
      3* where &chang1>&temp
    SQL> run
      1  select &chang1,ename,job
      2  from scott.emp
      3* where &chang1>&temp
    输入 chang1 的值:  empno
    原值    1: select &chang1,ename,job
    新值    1: select empno,ename,job
    输入 chang1 的值:  empno
    输入 temp 的值:  7790
    原值    3: where &chang1>&temp
    新值    3: where empno>7790
     
         EMPNO ENAME      JOB
    ---------- ---------- ---------
          7839 KING       PRESIDENT
          7844 TURNER     SALESMAN
          7876 ADAMS      CLERK
          7900 JAMES      CLERK
          7902 FORD       ANALYST
          7934 MILLER     CLERK

    上面定义了三个临时变量,但是有两个临时变量代表的是同一个值 而使用&定义的变量时 要求输入两次chang1的值

    使用&&时 如果你定义的临时变量名字相同则只要求你输入一次值

    使用&&定义的临时变量:

    SQL> run
      1  select &&chang1,ename,job
      2  from scott.emp
      3* where &&chang1>&&temp
    输入 chang1 的值:  empno
    原值    1: select &&chang1,ename,job
    新值    1: select empno,ename,job
    输入 temp 的值:  7790
    原值    3: where &&chang1>&&temp
    新值    3: where empno>7790
     
         EMPNO ENAME      JOB
    ---------- ---------- ---------
          7839 KING       PRESIDENT
          7844 TURNER     SALESMAN
          7876 ADAMS      CLERK
          7900 JAMES      CLERK
          7902 FORD       ANALYST
          7934 MILLER     CLERK

    通过上面的比较可以发现& 和&&定义的临时变量的区别了,但是上面每次输入定义的临时变量后默认都会显示原值和新值,如果不想让显示则可以使用以下命令:

    SQL> set verify off;
    SQL> run
      1  select &&chang1,ename,job
      2  from scott.emp
      3* where &&chang1>&&temp
     
         EMPNO ENAME      JOB
    ---------- ---------- ---------
          7839 KING       PRESIDENT
          7844 TURNER     SALESMAN
          7876 ADAMS      CLERK
          7900 JAMES      CLERK
          7902 FORD       ANALYST
          7934 MILLER     CLERK
     
    已选择6行。

    想要让其显示则可以使用:

    SQL> set verify on
    SQL> run
      1  select &&chang1,ename,job
      2  from scott.emp
      3* where &&chang1>&&temp
    原值    1: select &&chang1,ename,job
    新值    1: select empno,ename,job
    原值    3: where &&chang1>&&temp
    新值    3: where empno>7790
     
         EMPNO ENAME      JOB
    ---------- ---------- ---------
          7839 KING       PRESIDENT
          7844 TURNER     SALESMAN
          7876 ADAMS      CLERK
          7900 JAMES      CLERK
          7902 FORD       ANALYST
          7934 MILLER     CLERK

    推荐教程:《Oracle教程

    以上就是oracle有临时变量吗的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:oracle
    上一篇:怎么关闭oracle触发器 下一篇:oracle insert的用法是什么
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• oracle怎么判断数据是否是数字类型• oracle怎么查询用户所有表• 怎么修改oracle的processes值• 实例详解oracle添加唯一约束• oracle服务有哪些
    1/1

    PHP中文网