आप अपने CONNECT BY के बाद NOCYCLE कीवर्ड निर्दिष्ट करना चाहते हैं:
यानी
SELECT NAME,
TYPE,
REFERENCED_NAME,
REFERENCED_TYPE
FROM DBA_DEPENDENCIES
WHERE OWNER='FOO'
AND NAME='VIEW_01'
CONNECT BY NOCYCLE
PRIOR REFERENCED_NAME = NAME;
यहां NOCYCLE और "CONNECT_BY_ISCYCLE" कीवर्ड के बारे में अधिक जानकारी है:http://www.dba -oracle.com/t_advanced_sql_connect_by_loop.htm
और यहां:http://download.oracle. com/docs/cd/B19306_01/server.102/b14200/pseudocolumns001.htm
आशा है कि यह मदद करेगा...
संपादित करें:टिप्पणियों के बाद, आप खंड के साथ प्रारंभ करने से चूक गए हैं।
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, OWNER='FOO' रखते हुए जहां क्लॉज किसी भी निर्भरता को केवल FOO के ऑब्जेक्ट पर लौटाता है, ताकि आप संभवतः अन्य स्कीमा से निर्भरता को याद कर सकें।
संपादित करें 2:देखने की तालिका की प्राथमिक कुंजी स्वामी है, इस प्रकार नाम का चयन दोनों से शुरू होना चाहिए और दोनों से जुड़ना चाहिए। वांछित परिणामों को फ़िल्टर करने के लिए आप इसका उपयोग कर सकते हैं।
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;