【问题标题】:How to find the tables and their associated columns referenced in a stored procedure如何查找存储过程中引用的表及其关联列
【发布时间】:2014-05-08 08:57:20
【问题描述】:

我想列出存储过程中引用的所有表及其关联列。

我如何在 oracle 中做到这一点?

提前致谢。

【问题讨论】:

  • 不要认为您可以使用任何 oracle 视图获取列级别的依赖关系。您可以使用 *_dependencies 视图获取表级直接依赖关系。如果您需要获取列级别信息,则必须解析 *_source 视图

标签: sql oracle stored-procedures


【解决方案1】:

您无法在 all_dependecies 视图中获取所有表依赖项。 如果在一个过程中使用动态 sql,则该表将不在 dba_dependecies 视图中。 所以在这种情况下,你可以在 dba_source 中看到表(如果表名不是函数的参数!)

【讨论】:

    【解决方案2】:

    您可以使用此查询获取引用的表

    SELECT referenced_owner, 
           referenced_name, 
           referenced_type 
    FROM   dba_dependencies 
    WHERE  name = 'MYPROC' 
           AND owner = 'SCOTT' 
    ORDER  BY referenced_owner, 
              referenced_name, 
              referenced_type; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 2010-10-15
      • 2012-12-25
      相关资源
      最近更新 更多