Você deseja especificar a palavra-chave NOCYCLE após CONNECT BY:
ou seja
SELECT NAME,
TYPE,
REFERENCED_NAME,
REFERENCED_TYPE
FROM DBA_DEPENDENCIES
WHERE OWNER='FOO'
AND NAME='VIEW_01'
CONNECT BY NOCYCLE
PRIOR REFERENCED_NAME = NAME;
Há mais informações sobre NOCYCLE e as palavras-chave "CONNECT_BY_ISCYCLE" aqui:http://www.dba -oracle.com/t_advanced_sql_connect_by_loop.htm
e aqui:http://download.oracle. com/docs/cd/B19306_01/server.102/b14200/pseudocolumns001.htm
Espero que ajude...
EDIT:Após comentários, você perdeu a cláusula 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;
BTW, mantendo a cláusula OWNER='FOO' where limita quaisquer dependências retornadas apenas ao objeto FOO, então você pode perder dependências de outros esquemas.
Edit 2:A chave primária de uma tabela de exibição é o proprietário, nomeie, portanto, o select deve começar com ambos e conectar-se por ambos. Você pode usar where para filtrar os resultados desejados.
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;