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

标签 sql oracle plsql

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

我已经尝试过 all_dependencies 但它只适用于包级别,而不适用于内部函数/过程级别。 是否有可能使用例如找到此依赖项all_source?

预先感谢您的帮助。

最佳答案

不可能找到过程(在包中)和表之间的依赖关系。

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

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

说“这不可能”并不是一个好的答案。但在这种情况下,它可能会为您节省很多时间。这是很容易走入死胡同并浪费大量精力的任务之一。

关于sql - PL/SQL 中的 Oracle 数据库依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28044294/

相关文章:

sql - Oracle 带参数的存储过程

php - 您的 SQL 语法 'WHERE BapID=' 1/'' 第 3 行有错误

mysql - 如何从一张表中选择不同的

ruby-on-rails - 获取 OCIError : ORA-00932: inconsistent datatypes From Rails 3

sql - 与Oracle CONNECT BY的混淆

sql - 甲骨文 : how to fetch data from dynamic query?

sql - 如何显示与数据 block 中某些字符串匹配的表

sql - PostgreSQL 时间戳 - 索引

java - 按多个条件拆分列表

oracle计算当前行和前一行值的平均值