ホームページ >データベース >Oracle >Oracle には一時変数がありますか?

Oracle には一時変数がありますか?

青灯夜游
青灯夜游オリジナル
2022-04-18 18:04:573990ブラウズ

Oracle には一時変数があります。 Oracle データベースでは、変数を使用して一般的な SQL ステートメントを作成できます。「&」および「&&」記号が変数の前に使用されている場合、その変数は一時変数であり、構文は「sql ステートメント>&変数名;」になります。 「。」一時変数は、それを使用する SQL ステートメント内でのみ有効であり、変数の値は保持できません。

Oracle には一時変数がありますか?

このチュートリアルの動作環境: Windows 7 システム、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

上では 3 つの一時変数が定義されていますが、2 つの一時変数は同じ値を表します。& で定義された変数を使用する場合は、chang1 の値を 2 回入力する必要があります。

&& を使用する場合、if一時変数名が同じ場合は、値を 1 回入力するだけで済みます。

&& を使用して定義された一時変数:

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 Tutorial"

以上がOracle には一時変数がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。