[ Oracle PL/SQL ] constant 変数の宣言と初期化でコンパイルエラー ( PLS-00322 / PLS-00363 )

Pocket

ここでは、PL/SQL で constant 変数の宣言と初期化でコンパイルエラーとなる記述方法について掲載しています。詳細はサンプル中のコメントを参照ください。

スポンサーリンク

constant 変数でコンパイルエラー
CREATE OR REPLACE PROCEDURE VAR_TEST

IS
  var1 varchar2(10); -- 変数の宣言のみ
  var2 varchar2(10) := '1234567890'; -- 変数宣言と初期化
  var3 constant varchar2(10) := 'ABCDEFGHIJ'; -- 変数宣言と初期化

  -- 初期化なしでconstant 変数の宣言のみはできない(コンパイルエラー)
  --   PLS-00322: 定数var4の宣言には、初期割当てが必要です。
  -- var4 constant varchar2(10);

BEGIN

  var1 := '9876543210';

  -- constant で宣言した変数は初期化時のみ値の設定が可能(コンパイルエラー)
  --   PLS-00363: 式var3は割当てターゲットとして使用できません。
  -- var3 := 'update';

  dbms_output.put_line('var1 = ' || var1);
  dbms_output.put_line('var2 = ' || var2);
  dbms_output.put_line('var3 = ' || var3);

  /*
   * ------------------------
   * 出力結果
   * ------------------------
   * var1 = 9876543210
   * var2 = 1234567890
   * var3 = ABCDEFGHIJ
   */

END;
/

きっちした性格が素敵です。そのための constant なのですけどね。。。。

 

スポンサーリンク


Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>