oracle - 更改过程包和包体 PL/SQL

标签 oracle stored-procedures plsql oracle11g

我想为我的 oracle 数据库制作一个增量脚本。
我只想修改一个过程签名,它的主体,其余的应该保持不变。

如何在不使用创建或替换重新创建孔包的情况下完成此操作?

示例

旧包

PROCEDURE LOAD_ITEMS(OUTCURSOR OUT SYS_REFCURSOR);

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

编辑:
通过增量脚本,我的意思是从以前的版本升级到这个版本的脚本。
而且我只想修改当前程序,而不是全部。

最佳答案

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

ALTER PACKAGE 语句可用于重新编译整个包,它

[...] does not change the declaration or definition of an existing package. To redeclare or redefine a package, use the CREATE PACKAGE or the CREATE PACKAGE BODY statement with the OR REPLACE clause.

关于oracle - 更改过程包和包体 PL/SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8988061/

相关文章:

sql - 甲骨文(10) SQL : calculating final sum depending on two field

sql - 解析存储过程

mysql - 如何使用mysql获取用户的顶层分层数据?

algorithm - 有没有一种算法可以将一个数字分成三部分,并使它们的总和与原始数字相匹配?

oracle - 最高元素值(value)

oracle - 创建 Oracle 存储过程并从 .sql 文件执行它

mysql - linux 中用于处理数据库(oracle、mysql)的最佳 Gui 编辑器?

database - 尝试导入转储文件时出现 Oracle DB 错误

具有两个触发器和一个存储过程的 MySQL 错误 1442

mysql - 我可以使用查询查看与 Oracle 中特定数据类型相关的列吗?