PL/SQL 中的 Oracle 数据库依赖项

Oracle database dependencies in PL/SQL

我需要找到 functions/procedures(在包体内定义)和它们使用的表之间的依赖关系。

我试过 all_dependencies 但它只适用于包级别,而不适用于内部 function/procedure-level。 是否有可能使用例如找到此依赖项all_source?

在此先感谢您的帮助。

无法找到过程(在包中)和 tables 之间的依赖关系。

有多种工具可以检查依赖关系。正如您已经发现的那样,*_DEPENDENCIES 仅跟踪每个包级别的对象依赖性。有一个简洁的工具 PL/Scope 可以跟踪包各部分之间的依赖关系。但它不会跟踪所有 table 引用。

理论上您可以使用 *_SOURCE。实际上,除非您的代码使用一组有限的功能,否则这是不可能的。对于任何中等复杂的代码,忘记使用字符串函数或 regular expressions to parse code。不幸的是,似乎没有任何 PL/SQL 既可编程又能够准确解析复杂代码的解析器。

说 "it's not possible" 不是很好的答案。但在这种情况下,它可能会为您节省很多时间。这是其中一项很容易走入死胡同并浪费大量精力的任务。