Du vill ange nyckelordet NOCYCLE efter din CONNECT BY:
dvs.
SELECT NAME,
TYPE,
REFERENCED_NAME,
REFERENCED_TYPE
FROM DBA_DEPENDENCIES
WHERE OWNER='FOO'
AND NAME='VIEW_01'
CONNECT BY NOCYCLE
PRIOR REFERENCED_NAME = NAME;
Det finns mer information om NOCYCLE och nyckelorden "CONNECT_BY_ISCYCLE" här:http://www.dba -oracle.com/t_advanced_sql_connect_by_loop.htm
och här:http://download.oracle. com/docs/cd/B19306_01/server.102/b14200/pseudocolumns001.htm
Hoppas det hjälper...
EDIT:Efter kommentarer har du missat START WITH-satsen.
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, att behålla OWNER='FOO' där klausulen begränsar alla beroenden som returneras till bara FOO:s objekt så att du kan missa beroenden från andra scheman.
Redigera 2:Den primära nyckeln för en vytabell är ägaren, namnet bör därför väljas börja med båda och ansluta med båda. Du kan använda var för att filtrera bort önskade resultat.
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;