oracle有臨時變量。在Oracle數(shù)據(jù)庫中,可以使用變量來編寫通用的sql語句,如果該變量前使用了“&”和“&&”符號,那么該變量就是一個臨時變量,語法為“sql語句>&變量名;”。臨時變量只在使用它的sql語句中有效,變量值不能保留。
本教程操作環(huán)境:Windows7系統(tǒng)、Oracle 11g版、Dell G3電腦。
oracle有臨時變量。
在Oracle數(shù)據(jù)庫中,可以使用變量來編寫通用的sql語句,在運行sql語句時,為變量輸入值,就會在sql語句中將變量替換成這些值。
臨時變量只在使用它的sql語句中有效,變量值不能保留,臨時變量也稱為替換變量。在sql語句中,如果在某個變量前面使用了“&”和“&&”符號,那么久表示該變量是一個臨時變量,執(zhí)行sql語句時,系統(tǒng)會提示用戶為該變量提供一個具體的數(shù)據(jù)。
以下是一個不使用臨時變量的查詢語句:
如果使用&來聲明臨時變量:
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
上面定義了三個臨時變量,但是有兩個臨時變量代表的是同一個值 而使用&定義的變量時 要求輸入兩次chang1的值
使用&&時 如果你定義的臨時變量名字相同則只要求你輸入一次值
使用&&定義的臨時變量:
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
通過上面的比較可以發(fā)現(xiàn)& 和&&定義的臨時變量的區(qū)別了,但是上面每次輸入定義的臨時變量后默認都會顯示原值和新值,如果不想讓顯示則可以使用以下命令:
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教程》
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END
喜歡就支持一下吧
相關推薦