您的位置: 翼速应用 > 业内知识 > 数据库 > 正文

探讨在oracle中有没有临时变量

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


探讨在oracle中有没有临时变量


在oracle中存在临时变量


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


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


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


不使用临时变量的查询语句


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


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中有没有临时变量的探讨就到这里了,想了解更多内容的话可以关注翼速网络应用平台获取更多!


我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题