这个问题在这里已有答案:
我有一个Oracle VIEW,我想找到我的视图所依赖的所有表 . 可能,我的视图依赖于其他视图:在这种情况下,我想以递归方式导航依赖关系并转到表 .
这是我的架构的一个例子:
CREATE TABLE T1 (A NUMBER);
CREATE TABLE T2 (B NUMBER);
CREATE TABLE T3 (A NUMBER, B NUMBER);
CREATE VIEW V1 AS SELECT * FROM T1;
CREATE VIEW V2 AS SELECT * FROM T2;
CREATE VIEW V3 AS SELECT * FROM V1, V2 UNION ALL SELECT * FROM T3;
这是我想要的输出:
VIEW_NAME TABLE NAME
--------- ----------
V3 T1
V3 T2
V3 T3
2 回答
解决了David Aldridge的回答 . 我使用了以下查询:
DBA / USER / ALL_DEPENDENCIES系统视图具有此信息 . http://docs.oracle.com/cd/B28359_01/server.111/b28320/statviews_1066.htm#i1576452
您可以使用SELECT中的CONNECT BY子句递归查询它