更改程序包和包体PL / SQL

时间:2012-01-24 13:59:04

标签: oracle stored-procedures plsql oracle11g

我想为我的oracle数据库创建一个递增的粗体脚本。 我想只修改一个程序签名和它的正文,其余部分应保持不变。

如何在不使用create或replace?

重新创建孔包的情况下完成此操作

示例

旧包

PROCEDURE LOAD_ITEMS(OUTCURSOR OUT SYS_REFCURSOR);

新包

PROCEDURE LOAD_ITEMS(P_ID IN CHAR, OUTCURSOR OUT SYS_REFCURSOR);

修改
通过增量脚本,我的意思是从先前版本升级到此版本。 我想只修改当前的程序,而不是所有程序。

1 个答案:

答案 0 :(得分:19)

如果要更改包规范中的过程,则需要执行 CREATE OR REPLACE
整个包规范和正文已更改代码。


虽然可以使用ALTER PACKAGE语句重新编译整个包,但

  

[...]不会更改现有包的声明或定义。要重新声明或重新定义程序包,请使用带有OR REPLACE子句的CREATE PACKAGECREATE PACKAGE BODY语句。