从 sql 提示导出特定的 oracle 包(规范和正文)

Export specific oracle packages (specification and body) from sql prompt

我们必须更改现有包,但在我们进行任何更改之前,我们需要备份 log/sql/text 文件中已经(现有)的包。 我只想备份那些我们将在发布期间更改的包。 我们没有 SQL 开发人员或任何 UI 工具。我们可以从 SQL 提示 运行。

假设用户有 3 个包 'usr33' 包名 usr33_pkg135 usr33_pkg234 usr33_pkg456

可能吗? 如果是,如何?

您可以通过dbms_metadata:

查询包的源代码
SELECT DBMS_METADATA.GET_DDL(object_type=> 'PACKAGE', name=> ?, schema=> ?) from dual

一个选择是使用DBMS_METADATA包,比如

select dbms_metadata.get_ddl('PACKAGE', 'USR33_PKG135', 'USR33') result
from dual;

另一个是select来自USER_SOURCE的文本:

select text from user_source where name = 'USR33_PKG135'
order by type, line;