0

我有要在 Oracle 中部署到登台服务器的存储过程列表。我最终在部署时错过了一些程序。

有没有办法获取在另一个范围内被调用的所有存储过程的列表?

4

1 回答 1

2

您可以使用ALL_DEPENDENCIES视图来获取它。

ALL_DEPENDENCIES 描述了当前用户可访问的包、触发器、过程和函数之间的依赖关系。USER_DEPENDENCIES 对当前用户拥有的那些对象和 DBA_DEPENDENCIES(如果您有权访问)对数据库中的所有内容执行相同的操作。

以下将为您提供依赖于另一个包的当前用户的包、过程和函数列表,该用户有权访问的函数过程。

select *
  from all_dependencies
 where type = 'PACKAGE BODY'
   and owner = user
   and type in ('PROCEDURE','FUNCTION','PACKAGE','PACKAGE BODY')
   and referenced_type in ('PROCEDURE','FUNCTION','PACKAGE','PACKAGE BODY')

如果你愿意,你可以玩一下,例如我可能会排除 SYS 对象等。

于 2012-12-21T13:31:48.343 回答