查找视图所依赖的所有表

Dan*_*nga 1 oracle dependencies view

我有一个 Oracle 视图,我想找到我的视图所依赖的所有表。可能,我的视图依赖于其他视图:在这种情况下,我想递归地导航依赖项并访问表。

这是我的架构的示例:

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;
Run Code Online (Sandbox Code Playgroud)

这是我想要得到的输出:

VIEW_NAME TABLE NAME
--------- ----------
V3        T1
V3        T2
V3        T3
Run Code Online (Sandbox Code Playgroud)

Dav*_*dge 5

DBA/USER/ALL_DEPENDENCIES 系统视图具有此信息。http://docs.oracle.com/cd/B28359_01/server.111/b28320/statviews_1066.htm#i1576452

您可以使用 SELECT 中的 CONNECT BY 子句递归查询它

  • @Rachcha select_catalog_role 就足够了,除了 dba_dependency 之外。 (2认同)