Kondisi terakhir tidak berlaku untuk data Anda, tetapi sangat penting untuk menghindari rekursi tak terbatas.
Untuk mengilustrasikan poin ini, pertimbangkan apa yang akan terjadi jika Anda menambahkan baris lain ke tabel Anda:
E40 E40
Jika Anda memulai dengan E40
bukannya E90
, Oracle akan berputar menjadi rekursi tak terbatas tanpa EMP_ID != MANAGER_ID
kondisi, karena E40
akan terhubung kembali ke E40
.
Perhatikan bahwa pendekatan yang lebih baik untuk menulis kueri ini adalah dengan menggunakan NOCYCLE
opsi alih-alih coding dalam pemeriksaan eksplisit:
SELECT *
FROM Temp
START WITH EMP_ID = 'E90'
CONNECT BY NOCYCLE PRIOR EMP_ID = MANAGER_ID
ORDER BY EMP_ID