Oracle PL/SQL - 如何创建程序包本地别名而不创建公共同义词?

Scr*_*Dev 1 oracle plsql

我多次在另一个包中引用相同的单个存储过程.我想知道你是否可以为其他程序创建一个Package Level同义词,
而不是pkg_name.每一个都使用它?
这也会给它一些继承.

基本上,我正在尝试模仿static importextends使用Java.

代替:

CREATE OR REPLACE PACKAGE BODY pkg
IS
   PROCEDURE test
   IS
   BEGIN
      some_name_utils.do_lots_of_stuff()
   END;
BEGIN
END;
/
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

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;
/
Run Code Online (Sandbox Code Playgroud)

Chr*_*Hep 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;
/
Run Code Online (Sandbox Code Playgroud)