Sie möchten das Schlüsselwort NOCYCLE nach Ihrem CONNECT BY:
angebend.h.
SELECT NAME,
TYPE,
REFERENCED_NAME,
REFERENCED_TYPE
FROM DBA_DEPENDENCIES
WHERE OWNER='FOO'
AND NAME='VIEW_01'
CONNECT BY NOCYCLE
PRIOR REFERENCED_NAME = NAME;
Weitere Informationen zu NOCYCLE und den Schlüsselwörtern "CONNECT_BY_ISCYCLE" finden Sie hier:http://www.dba -oracle.com/t_advanced_sql_connect_by_loop.htm
und hier:http://download.oracle. com/docs/cd/B19306_01/server.102/b14200/pseudocolumns001.htm
Hoffe es hilft...
BEARBEITEN:Nach Kommentaren haben Sie die START WITH-Klausel verpasst.
SELECT NAME,
TYPE,
REFERENCED_NAME,
REFERENCED_TYPE
FROM DBA_DEPENDENCIES
WHERE OWNER='FOO'
START WITH NAME='VIEW_01'
CONNECT BY NOCYCLE
PRIOR REFERENCED_NAME = NAME;
Übrigens, das Beibehalten der OWNER='FOO'-Where-Klausel begrenzt alle Abhängigkeiten, die auf das Objekt von FOO zurückgegeben werden, sodass Sie möglicherweise Abhängigkeiten von anderen Schemas übersehen.
Bearbeiten 2:Der Primärschlüssel einer Ansichtstabelle ist Eigentümer, daher sollte die Auswahl mit beiden beginnen und sich mit beiden verbinden. Sie können where verwenden, um die gewünschten Ergebnisse herauszufiltern.
SELECT OWNER, NAME, TYPE,
REFERENCED_OWNER,
REFERENCED_NAME,
REFERENCED_TYPE
FROM DBA_DEPENDENCIES
-- where referenced_type='TABLE'
START WITH owner = 'FOO' AND NAME='VIEW_01'
CONNECT BY NOCYCLE
PRIOR REFERENCED_NAME = NAME
AND PRIOR REFERENCED_OWNER = OWNER;