2017-02-01 4 views
2

私はこのようなパッケージがあります。ORA-04068仕様でのみ定数(DB 11.2.0.4)

create or replace PACKAGE pkg_state 
AS 
    gv_test constant varchar(50) := 'Test!'; 

    FUNCTION get_variable 
    RETURN VARCHAR2; 
END pkg_state; 
/

create or replace PACKAGE BODY pkg_state 
AS 

    FUNCTION get_variable 
    RETURN VARCHAR2 
    AS 
    BEGIN 
     RETURN 'TRUE'; 
    END get_variable; 

END pkg_state; 
/

を私の理解では、11.2.0.2定数と文句を言わないパッケージ状態を変更することでした。 しかし、私が別のセッションでパッケージ本体を変更すると、私は04068エラーを受け取ります。定数がPackage Bodyにある場合は、すべてが期待通りに機能しますが、仕様の定数では機能しません。

(Oracle Database 11gのEnterprise Editionのリリース11.2.0.4.0 - 64ビットの製造)

任意のアイデア?私は何が欠けていますか?

答えて

1

11gデータベースでこの問題が修正されたかどうかわかりません。 (それが固定されていること、それは述べてここに)私はリンクを追加した理由です

create or replace PACKAGE pkg_state 
AS 
    FUNCTION gv_test RETURN VARCHAR2; 

    FUNCTION get_variable 
    RETURN VARCHAR2; 
END pkg_state; 
/

create or replace PACKAGE BODY pkg_state 
AS 
    FUNCTION gv_test 
    RETURN VARCHAR2 
    AS 
    BEGIN 
     RETURN 'Test!'; 
    END; 

    FUNCTION get_variable 
    RETURN VARCHAR2 
    AS 
    BEGIN 
     RETURN 'TRUE'; 
    END get_variable; 

END pkg_state; 
/
+0

: はこの使用(私はそれがポイントをミス知っている)を避けるためにhttp://docs.oracle.com/cd/E11882_01/ appdev.112/e25519/whatsnew.htm#LNPLS110 – SebastianK