U wilt het NOCYCLE-sleutelwoord opgeven na uw CONNECT BY:
d.w.z.
SELECT NAME,
TYPE,
REFERENCED_NAME,
REFERENCED_TYPE
FROM DBA_DEPENDENCIES
WHERE OWNER='FOO'
AND NAME='VIEW_01'
CONNECT BY NOCYCLE
PRIOR REFERENCED_NAME = NAME;
Meer informatie over NOCYCLE en de trefwoorden "CONNECT_BY_ISCYCLE" vindt u hier:http://www.dba -oracle.com/t_advanced_sql_connect_by_loop.htm
en hier:http://download.oracle. com/docs/cd/B19306_01/server.102/b14200/pseudocolumns001.htm
Ik hoop dat het helpt...
EDIT:Na opmerkingen heb je de START WITH-clausule gemist.
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;
Trouwens, het behouden van de OWNER='FOO' waar-clausule beperkt alle afhankelijkheden die worden geretourneerd naar alleen het object van FOO, zodat u mogelijk afhankelijkheden van andere schema's mist.
Bewerken 2:De primaire sleutel van een weergavetabel is de eigenaar, de naam moet dus met beide beginnen en door beide worden verbonden. U kunt gebruiken waar u de gewenste resultaten wilt filteren.
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;