Последното условие не се отнася за вашите данни, но е много важно да избегнете безкрайна рекурсия.
За да илюстрирате тази точка, помислете какво ще се случи, ако добавите още един ред към вашата таблица:
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