Vuoi specificare la parola chiave NOCYCLE dopo il tuo CONNECT BY:
cioè
SELECT NAME,
TYPE,
REFERENCED_NAME,
REFERENCED_TYPE
FROM DBA_DEPENDENCIES
WHERE OWNER='FOO'
AND NAME='VIEW_01'
CONNECT BY NOCYCLE
PRIOR REFERENCED_NAME = NAME;
Ulteriori informazioni su NOCYCLE e sulle parole chiave "CONNECT_BY_ISCYCLE" sono disponibili qui:http://www.dba -oracle.com/t_advanced_sql_connect_by_loop.htm
e qui:http://download.oracle. com/docs/cd/B19306_01/server.102/b14200/pseudocolumns001.htm
Spero che aiuti...
EDIT:dopo i commenti, hai perso la clausola START WITH.
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;
A proposito, mantenendo OWNER='FOO' dove la clausola limita le dipendenze restituite solo all'oggetto di FOO, quindi potresti perdere le dipendenze da altri schemi.
Modifica 2:la chiave primaria di una tabella di visualizzazione è il proprietario, quindi il nome deve iniziare con entrambi e connettersi con entrambi. Puoi usare dove filtrare i risultati desiderati.
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;