PL / SQL中包的别名或同义词

时间:2013-10-01 07:42:05

标签: oracle plsql

我有一个系统,我将我的功能分成几个不同的包。目前我使用packagename.object的点符号调用函数和过程

我的一些软件包名称(由于公司编码标准)相当长

我可以为包创建别名/同义词以缩短我的代码吗?

ie:而不是pkge_member_utilities.CreateMember,我可以为包创建一个同义词/别名'util',然后在我的代码中使用util.CreateMember

我已经阅读了CREATE SYNONYM的文档但它很混乱,因为它似乎用于执行立即执行,而我想在我的代码中引用同义词

再一次,对于模糊术语的道歉,因为我是从Java背景来的

非常感谢你的时间

麦克

2 个答案:

答案 0 :(得分:2)

虽然我同意上述评论,但这主要是为了打败标准。但是,有时标准是可怕的,只要有适当的单元测试,在正确的情况下,有什么危害?

create or replace package long_package_name as
  function give_me_zero return number;
end;
/

create or replace package body long_package_name as
  function give_me_zero return number is begin return 0; end;
end;
/

create or replace synonym pkg for long_package_name;

-- either works the same
select long_package_name.give_me_zero from dual;
select pkg.give_me_zero from dual;

答案 1 :(得分:-1)

create public synonym util for <owner>.pkge_member_utilities;