在sqlplus窗口中执行如下代码:
select &s1,ename,job
from emp
where &s1>7789;
结果:
输入 s1 的值: empno
原值 1: select &s1,ename,job
新值 1: select empno,ename,job
输入 s1 的值: empno
原值 3: where &s1>7789
新值 3: where empno>7789
EMPNO ENAME JOB
---------- ---------- ---------
7839 KING PRESIDENT
7844 TURNER SALESMAN
7876 ADAMS CLERK
7900 JAMES CLERK
7902 FORD ANALYST
7934 MILLER CLERK
已选择6行。
从以上结果可以了解到 虽然我们用的是相同的变量 但是要求我们输入的是两次变量的值,oracle不会认为是相同的变量
如果要使用相同的变量那么就应该用&&命令,如下代码所示:
SQL> list
1 select &&s1,ename,job
2 from emp
3* where &&s1>7789
SQL> /
输入 s1 的值: empno
原值 1: select &&s1,ename,job
新值 1: select empno,ename,job
原值 3: where &&s1>7789
新值 3: where empno>7789
EMPNO ENAME JOB
---------- ---------- ---------
7839 KING PRESIDENT
7844 TURNER SALESMAN
7876 ADAMS CLERK
7900 JAMES CLERK
7902 FORD ANALYST
7934 MILLER CLERK
已选择6行。