oracle有臨時(shí)變量。在Oracle數(shù)據(jù)庫(kù)中,可以使用變量來(lái)編寫(xiě)通用的sql語(yǔ)句,如果該變量前使用了“&”和“&&”符號(hào),那么該變量就是一個(gè)臨時(shí)變量,語(yǔ)法為“sql語(yǔ)句>&變量名;”。臨時(shí)變量只在使用它的sql語(yǔ)句中有效,變量值不能保留。
本教程操作環(huán)境:Windows7系統(tǒng)、Oracle 11g版、Dell G3電腦。
oracle有臨時(shí)變量。
在Oracle數(shù)據(jù)庫(kù)中,可以使用變量來(lái)編寫(xiě)通用的sql語(yǔ)句,在運(yùn)行sql語(yǔ)句時(shí),為變量輸入值,就會(huì)在sql語(yǔ)句中將變量替換成這些值。
臨時(shí)變量只在使用它的sql語(yǔ)句中有效,變量值不能保留,臨時(shí)變量也稱(chēng)為替換變量。在sql語(yǔ)句中,如果在某個(gè)變量前面使用了“&”和“&&”符號(hào),那么久表示該變量是一個(gè)臨時(shí)變量,執(zhí)行sql語(yǔ)句時(shí),系統(tǒng)會(huì)提示用戶(hù)為該變量提供一個(gè)具體的數(shù)據(jù)。
以下是一個(gè)不使用臨時(shí)變量的查詢(xún)語(yǔ)句:
如果使用&
來(lái)聲明臨時(shí)變量:
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
上面定義了三個(gè)臨時(shí)變量,但是有兩個(gè)臨時(shí)變量代表的是同一個(gè)值 而使用&定義的變量時(shí) 要求輸入兩次chang1的值
使用&&時(shí) 如果你定義的臨時(shí)變量名字相同則只要求你輸入一次值
使用&&定義的臨時(shí)變量:
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
通過(guò)上面的比較可以發(fā)現(xiàn)& 和&&定義的臨時(shí)變量的區(qū)別了,但是上面每次輸入定義的臨時(shí)變量后默認(rèn)都會(huì)顯示原值和新值,如果不想讓顯示則可以使用以下命令:
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
推薦教程:《Oracle教程》