Vous souhaitez spécifier le mot-clé NOCYCLE après votre CONNECT BY :
c'est-à-dire
SELECT NAME,
TYPE,
REFERENCED_NAME,
REFERENCED_TYPE
FROM DBA_DEPENDENCIES
WHERE OWNER='FOO'
AND NAME='VIEW_01'
CONNECT BY NOCYCLE
PRIOR REFERENCED_NAME = NAME;
Il y a plus d'informations sur NOCYCLE et les mots clés "CONNECT_BY_ISCYCLE" ici :http://www.dba -oracle.com/t_advanced_sql_connect_by_loop.htm
et ici :http://download.oracle. com/docs/cd/B19306_01/server.102/b14200/pseudocolumns001.htm
J'espère que ça aide...
EDIT :Après les commentaires, vous avez manqué la clause 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, en gardant la clause OWNER='FOO' where limite toutes les dépendances renvoyées à l'objet de FOO uniquement, vous risquez donc de manquer des dépendances d'autres schémas.
Edit 2:La clé primaire d'une table de vue est propriétaire, nom donc la sélection doit commencer par les deux et se connecter par les deux. Vous pouvez utiliser où pour filtrer les résultats souhaités.
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;