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