Oracle & 符号替换

先来介绍&的最基本用法,sql语句中使用“&var”会提示输入变量,并将输入的值等量代换。如下代码

SQL> SELECT *FROM EMP_COPY WHERE EMPNO='&NUM';
Enter value  for NUM:7521

EMPNO ENAME      JOB         MGR HIREDATE       SALARY      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7521 WARD       SALESMAN   7698 1981/2/22     1250.00    500.00     30

使用两个&&会将变量设置为会话变量,以后再出现相同的变量时不再提示输入。

SQL> SELECT *FROM EMP_COPY WHERE EMPNO='&NUM' AND EMPNO='&NUM';
Enter vlaue for NUM:7521
Enter vlaue for NUM:7521

EMPNO ENAME      JOB         MGR HIREDATE       SALARY      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7521 WARD       SALESMAN   7698 1981/2/22     1250.00    500.00     30

SQL> SELECT *FROM EMP_COPY WHERE EMPNO='&&NUM' AND EMPNO='&NUM';
Enter vlaue for NUM:7521

EMPNO ENAME      JOB         MGR HIREDATE       SALARY      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7521 WARD       SALESMAN   7698 1981/2/22     1250.00    500.00     30

查看定义的会话变量DEFINE;

定义会话变量DEFINE variable=value;

删除会话变量UNDEFINE variable;

关闭/打开替换功能:SET DEFINE OFF/ON;

当关闭替换功能后,sql中的&将被识别为字面值'&'。

VERIFY验证:

SET VERIFY ON/OFF:打开验证or关闭验证。

打开验证时,当输入变量后,会回显替换变量名:替换值,然后执行。

SQL> SELECT *FROM EMP_COPY WHERE EMPNO='&NUM';
Enter vlaue for NUM:7521

&NUM: 7521 EMPNO ENAME JOB MGR HIREDATE SALARY COMM DEPTNO ----- ---------- --------- ----- ----------- --------- --------- ------ 7521 WARD SALESMAN 7698 1981/2/22 1250.00 500.00 30

补充:操作oracle服务器可以使用两种命令:sql语言命令(select...)和sql客户控制命令(set,define...)。

原文地址:https://www.cnblogs.com/MasterE/p/6681581.html