将现有函数添加到Package PLSQL

时间:2016-07-27 13:07:38

标签: plsql oracle11g

我对PLSQL编程很陌生,所以我仍然面临像这样的一般问题。

我开发了一些独立的函数(Oracle PLSQL函数),我想将它们分组在同一个包中。

所以我创建了一个新包,但我对下一步该做什么几乎没有疑问:

  1. 有没有办法直接将功能链接到我的包裹?我不这么认为,但也许......
  2. 我是否允许以与外部函数相同的方式命名包中的函数,否则会导致范围问题?
  3. 感谢您的帮助。 马塞罗

1 个答案:

答案 0 :(得分:3)

您不能将独立函数链接到包,只需将函数的代码复制到包体中,并将​​函数规范复制到包规范中。

例如,如果你有:

create or replace function my_function 
   return number
is
begin
   return 42;
end;

...然后你可以将它复制到包中:

create or replace package my_package is
   function my_function 
      return number;
end;

create or replace package body my_package is
   function my_function 
      return number
   is
   begin
      return 42;
   end;
end;

您可以为它们提供与独立功能相同的名称,而不会出现任何问题。如果你从包中不合格(只是my_function)调用其中一个函数,那么你将调用包版本;如果你真的想从包中调用独立函数,那么你需要添加模式前缀:my_schmea.my_function。但希望你真的不想这样做!