La última condición no se aplica a sus datos, pero es muy importante para evitar la repetición infinita.
Para ilustrar este punto, considere lo que sucedería si agregara otra línea a su tabla:
E40 E40
Si empiezas con E40
en lugar de E90
, Oracle se convertiría en una recursividad infinita sin EMP_ID != MANAGER_ID
condición, porque E40
se conectaría de nuevo a E40
.
Tenga en cuenta que un mejor enfoque para escribir esta consulta es usar NOCYCLE
opción en lugar de codificar en una comprobación explícita:
SELECT *
FROM Temp
START WITH EMP_ID = 'E90'
CONNECT BY NOCYCLE PRIOR EMP_ID = MANAGER_ID
ORDER BY EMP_ID