首頁  >  文章  >  資料庫  >  oracle有臨時變數嗎

oracle有臨時變數嗎

青灯夜游
青灯夜游原創
2022-04-18 18:04:573918瀏覽

oracle有臨時變數。在Oracle資料庫中,可以使用變數來編寫通用的sql語句,如果該變數前使用了“&”和“&&”符號,那麼該變數就是一個臨時變量,語法為“sql語句>&變數名稱;” 。臨時變數只在使用它的sql語句中有效,變數值不能保留。

oracle有臨時變數嗎

本教學操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。

oracle有臨時變數。

在Oracle資料庫中,可以使用變數來寫一個通用的sql語句,在執行sql語句時,為變數輸入值,就會在sql語句中將變數替換成這些值。

臨時變數只在使用它的sql語句中有效,變數值不能保留,臨時變數也稱為替換變數。在sql語句中,如果在某個變數前面使用了「&」和「&&」符號,那麼久表示該變數是一個臨時變量,執行sql語句時,系統會提示使用者為該變數提供一個具體的資料。

以下是一個不使用臨時變數的查詢語句:

oracle有臨時變數嗎

#如果使用&來宣告暫存變數:

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

透過上面的比較可以發現& 和&&定義的臨時變數的區別了,但是上面每次輸入定義的臨時變數後預設都會顯示原值和新值,如果不想讓顯示可以使用以下命令:

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教學

以上是oracle有臨時變數嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn