oracle有临时变量吗

2023年 4月 15日 32.2k 0

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

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有临时变量吗的详细内容,更多请关注每日运维其它相关文章!

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论