L'ultima condizione non si applica ai tuoi dati, ma è molto importante evitare la ricorsione infinita.
Per illustrare questo punto, considera cosa accadrebbe se aggiungessi un'altra riga alla tabella:
E40 E40
Se inizi con E40
invece di E90
, Oracle girerebbe in una ricorsione infinita senza EMP_ID != MANAGER_ID
condizione, perché E40
si ricollegherebbe a E40
.
Nota che un approccio migliore per scrivere questa query consiste nell'usare NOCYCLE
opzione invece di codificare in un controllo esplicito:
SELECT *
FROM Temp
START WITH EMP_ID = 'E90'
CONNECT BY NOCYCLE PRIOR EMP_ID = MANAGER_ID
ORDER BY EMP_ID