我有要在 Oracle 中部署到登台服务器的存储过程列表。我最终在部署时错过了一些程序。
有没有办法获取在另一个范围内被调用的所有存储过程的列表?
您可以使用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 对象等。