我有一个包含许多存储过程的sql包。
create or replace package body My_Pck is
/** Package started **/
/** Procedure 1 **/
procedure one() as
begin
end;
/** Procedure 2 **/
procedure one() as
begin
end;
My_Pck end;
问题是如果我用不同的名称编译这个包将会发生什么?新包中的其他过程将覆盖原始过程?我搜索了很多,但没有得到合适的答案。
任何建议都会非常有用。
答案 0 :(得分:0)
在这里你需要理解一点。
包基本上是程序,函数等的集合。如果没有指定限定符包名,则不能在包内定义的过程独立调用。这些过程始终用作package.procedure。
让我们考虑你的包裹。您可以调用My_Pck.one等程序。
create or replace package body My_Pck is
/** Package started **/
/** Procedure 1 **/
procedure one() as
begin
end;
/** Procedure 2 **/
procedure one() as
begin
end;
My_Pck end;
如果您使用不同的名称编译包,如下所示,则需要将过程称为my_pck2.one。
create or replace package body My_Pck2 is
/** Package started **/
/** Procedure 1 **/
procedure one() as
begin
end;
/** Procedure 2 **/
procedure one() as
begin
end;
My_Pck end;
由于