首页 > 解决方案 > ORACLE:如何查找特定表中列对象的所有依赖项

问题描述

我想知道一种查询方法,我可以在其中找到具有特定表中特定列的对象的所有依赖关系。我可以用一张桌子来做,但我不知道如何用那张桌子的一列来做

SELECT   type,
           name
    FROM   user_dependencies
   WHERE   referenced_name = 'table_name'
ORDER BY   type,
           name

标签: oracledata-dictionary

解决方案


可以加入 user_dependencies 和 user_source 字典视图以获得mytable'col0存在的部分:

SELECT d.type, d.name, s.line as line_number, s.text
  FROM user_dependencies d
  LEFT JOIN user_source s
    ON s.name = d.name
 WHERE d.referenced_name = 'MYTABLE'
   AND upper(s.text) like '%COL0%'
 ORDER BY d.type, d.name

搜索整个数据库(前提是存在权限)

SELECT d.type, d.name, s.line as line_number, s.text
  FROM dba_dependencies d
  LEFT JOIN dba_source s
    ON s.name = d.name
 WHERE d.referenced_name = 'MYTABLE'
   AND upper(s.text) like '%COL0%'
 ORDER BY d.type, d.name

请注意:实际上mytable.*隐式还包含您想要的列。


推荐阅读