我需要找到函数/过程(在包体内定义)和它们使用的表之间的依赖关系。
我已经尝试all_dependencies
但它只适用于包级别,而不是内部函数/过程级别。
有没有可能使用例如找到这种依赖关系。 all_source
?
提前感谢您的帮助。
答案 0 :(得分:2)
无法找到程序(在包中)和表之间的依赖关系。
有几种工具可以检查依赖关系。正如您已经发现的那样,*_DEPENDENCIES
仅跟踪每个包级别的对象依赖性。有一个简洁的工具PL/Scope可以跟踪包的各个部分之间的依赖关系。但它不会跟踪所有表引用。
理论上你可以使用*_SOURCE
。实际上,除非您的代码使用一组有限的功能,否则这是不可能的。对于任何中等复杂的代码,请忘记使用字符串函数或regular expressions to parse code。不幸的是,似乎没有任何可编程且能够准确解析复杂代码的PL / SQL解析器。
说"它不可能"不是一个很好的答案。但在这种情况下,它可能会为您节省大量时间。这是一个很容易陷入死胡同并浪费大量精力的任务之一。