अंतिम शर्त आपके डेटा पर लागू नहीं होती है, लेकिन अनंत रिकर्सन से बचना बहुत महत्वपूर्ण है।
इस बिंदु को स्पष्ट करने के लिए, विचार करें कि यदि आप अपनी तालिका में एक और पंक्ति जोड़ते हैं तो क्या होगा:
E40 E40
अगर आप E40
. से शुरू करते हैं E90
. के बजाय , Oracle EMP_ID != MANAGER_ID
के बिना एक अनंत रिकर्सन में घूमेगा शर्त, क्योंकि E40
वापस E40
से कनेक्ट होगा ।
ध्यान दें कि इस प्रश्न को लिखने का एक बेहतर तरीका NOCYCLE
. का उपयोग करना है एक स्पष्ट जांच में कोडिंग के बजाय विकल्प:
SELECT *
FROM Temp
START WITH EMP_ID = 'E90'
CONNECT BY NOCYCLE PRIOR EMP_ID = MANAGER_ID
ORDER BY EMP_ID