先来介绍&的最基本用法,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...)。