Pet*_*all 10 oracle stored-procedures
我有一个要重构的存储过程,它位于一个拥有数千个 SP 的数据库中。是否有一种快速的方法可以在其他 SP 中查找对该存储过程的引用,以便我可以确保在重构时不会破坏任何其他代码。
在应用程序代码中,我可以很容易地查找对 SP 的调用,并且可以对定义 SP 的所有各种 sql 文件进行文本搜索,但数据库中可能有一些 SP 可能会以这种方式被遗漏.
编辑:我试图定位的存储过程是包的一部分。
编辑:我在 Oracle 11g 上运行
Min*_*uba 12
DBA_DEPENDENCIES
view 有这些问题的所有答案。
select * from DBA_DEPENDENCIES
where referenced_owner='HR' and referenced_name='STORED_PROCEDURE_41';
Run Code Online (Sandbox Code Playgroud)
这似乎有效 - 它不如@MindaugasRiauba 的答案优雅,但它似乎确实从所有包中找到了引用。
SELECT * FROM all_source
where UPPER(TEXT) like UPPER('%STORED_PROCEDURE_NAME%')
Run Code Online (Sandbox Code Playgroud)
(来自如何判断是否正在使用 PL/SQL 包、过程或函数?)
归档时间: |
|
查看次数: |
50393 次 |
最近记录: |