2016-10-28 5 views
1

私は同じパッケージ内の同じストアドプロシージャを何度も参照しています。
1つ1つにpkg_name.を使用する代わりに、他の手順にパッケージレベルのシノニムを作成できるかどうかは疑問でしたか?
これはまた、それに少しの継承を与えるでしょう。Oracle PL/SQL - パブリック・シノニムを作成して、プロシージャにパッケージ・ローカル・エイリアスを作成する方法

基本的に、私はstatic importまたはextendsをJavaで模倣しようとしています。

の代わりに:

CREATE OR REPLACE PACKAGE BODY pkg 
IS 
    PROCEDURE test 
    IS 
    BEGIN 
     some_name_utils.do_lots_of_stuff() 
    END; 
BEGIN 
END; 
/

私はこのような何かをしたいと思います:

CREATE OR REPLACE PACKAGE pkg 
IS 
    SYNONYM do_lots_of_stuff FOR some_name_utils.do_lots_of_stuff; 

    PROCEDURE test; 
END; 
/
CREATE OR REPLACE PACKAGE BODY pkg 
IS 
    PROCEDURE test 
    IS 
    BEGIN 
     do_lots_of_stuff() 
    END; 
BEGIN 
END; 
/

答えて

5

私は私がこのアプローチに同意することを言うことができるか分かりません。他のパッケージが変更された場合は、ここでも更新する必要があります。しかし、あなたが求めている目的は次のとおりです。

CREATE OR REPLACE PACKAGE BODY pkg 
IS 
    PROCEDURE do_lots_of_stuff 
    IS 
    BEGIN 
     some_name_utils.do_lots_of_stuff(); 
    END; 

    PROCEDURE test 
    IS 
    BEGIN 
     do_lots_of_stuff; 
    END; 
BEGIN 
END; 
/
+0

これは私が今やっていることです。とにかく、両方の場所を変更する必要があります。それのために1つのライナーを望んでいただけだった。他のアプローチで誰も来なければ、私はあなたのことを解決策としてマークします。 – ScrappyDev

関連する問題