重命名Oracle 10g中包中的存储过程

时间:2012-03-21 21:43:40

标签: oracle stored-procedures rename

我在Oracle 10g的软件包中有一个SP。我使用Oracle SQL Developer来访问Dbs。如何重命名此SP?其中一个解决方案是以下命令。

create or replace procedure new_procedure_name
as
begin 
old_procedure_name; 
end;

这是我在StackOverflow(old post)上找到的解决方案。还有很多人建议我们需要删除并创建一个新的SP。我的东西在一个包中,我不认为上面的命令在那里工作。

3 个答案:

答案 0 :(得分:3)

您发布的内容:

create or replace procedure new_procedure_name as
begin 
old_procedure_name; 
end;

是一种有效的方法。但是,它只会给你带来麻烦。 old_procedure_namenew_procedure_name之间没有明显的联系(虽然显然还有另一种方式)。

目前为止,最好找到您的软件包/程序存储在版本控制系统中的位置。更改名称,提交它,然后重新编译包。

这适用于它是一个独立的功能/程序还是一个包内。

重新编译实际上是一个" drop"因为你必须用新版本替换当前版本,即我完全同意你的链接问题。

答案 1 :(得分:0)

您只需打开包,更改过程的名称,然后重新编译即可。当你打开它应该说

create or replace package ...

(因为选择创建或替换程序)

答案 2 :(得分:0)

感谢@Ben和@AlejoBrz花时间回答我的问题。这是一位经验丰富的开发人员,帮助过我。只需转到包,右键单击并编译它,然后将Pckg_body下的SP重命名为另一个名称,重命名包下的SP,重新编译并更改名称。 @AlejoBrz,我不知道有一个PCKG和一个PCKG_BODy,所以我迷失了为什么在右击,我没有得到drop / create选项。它仅适用于PCKG,而不适用于PCKG_body。