oracle查询时定义临时的变量,oracle学习笔记之临时变量的使用

在oracle中临时变量可以用&|&&   name 的格式代表临时变量使用& 和使用&& 是有区别的

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

SQL> select empno,ename,job

2 from scott.emp

3 where empno>7788;

EMPNO ENAME JOB

---------- ---------- ---------

7839 KING PRESIDENT

7844 TURNER SALESMAN

7876 ADAMS CLERK

7900 JAMES CLERK

7902 FORD ANALYST

7934 MILLER CLERK

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值