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-server - ORACLE/SQL Server 中的减号与除外差异

oracle - 自动回滚脚本 oracle

oracle - sqlplus卡在删除查询

java - 不使用数据库生成主键

Oracle 数据库读锁

sql - Oracle SQL 查询的性能调优

c# - 带有 CosmosDB 的 .NET Core 中的存储过程给出错误 500

sql-server - 帮助理解 SQL 存储过程参数

php - 如何使用 ORACLE(OCI) 在 SQL/PHP 中执行更新查询

stored-procedures - php/myAdmin版本4.8-编辑例程未显示mysql错误消息