2012年2月1日水曜日

PL/SQL Package内の 「PRIVATE」 キーワード


Oracle のPackage作成時、TAGとして使えていた「PRIVATE」というキーワード
11g R2だとエラーになるようになったんだね。

CREATE OR REPLACE PACKAGE HOGEHOGE AS
  PRIVATE FUNCTION ISNUMERIC ( ACCT in varchar2) return number;
          FUNCTION ISNUMERIC2 ( ACCT in varchar2) return number;
END HOGEHOGE;
/

10.2.0.4だと正常終了
11.2.0.2, 11.2.0.3だとコンパイルエラー
-------- -----------------------------------------------------------------
2/20     PLS-00103: 記号"ISNUMERIC"が見つかりました。
        次のうちの1つが入るとき:
        := . ( @ % ; not null range default character
        記号":=" は続行のために"ISNUMERIC"に代わりました。

2/40     PLS-00103: 記号"VARCHAR2"が見つかりました。
        次のうちの1つが入るとき:
        (

4/1      PLS-00103: 記号"END"が見つかりました。 次のうちの1つが入るとき:
        begin function pragma procedure subtype type <an identifier>

LINE/COL ERROR
-------- -----------------------------------------------------------------
        <a double-quoted delimited-identifier> current cursor delete
        exists prior

もともと使えるのがイレギュラーだったんだけど、使えなくなるのはちょっと不便

0 件のコメント:

コメントを投稿