使用PL / SQL脚本从视图中检索表名

时间:2016-02-16 22:07:57

标签: database oracle plsql views

我希望找到我的数据库中的视图使用的源表。我需要一个全自动的解决方案。例如,我有一个视图,从另一个从表中提取数据的视图中提取数据。浏览每个视图的DDL脚本并深入查找表格很容易,但是我希望编写一个脚本来为我在所有视图中执行此操作。我应该反对数据字典吗?有没有人有提示或脚本或查询?提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果你只是递归引用的表,试试这个。 'CONNECT BY'子句为您进行递归钻孔:

SELECT
  * 
FROM
  sys.dba_dependencies 
WHERE referenced_type = 'TABLE'
START WITH "NAME" = 'VIEW_NAME_IN_QUESTION'
CONNECT BY PRIOR REFERENCED_NAME = "NAME" AND "TYPE" = 'VIEW';

如果要查看所有对象类型,请删除where子句。 REFERENCED_NAME列会为您提供列表。