De laatste voorwaarde is niet van toepassing op uw gegevens, maar het is erg belangrijk om oneindige recursie te voorkomen.
Om dit punt te illustreren, bedenk wat er zou gebeuren als u nog een regel aan uw tabel zou toevoegen:
E40 E40
Als je begint met E40 in plaats van E90 , zou Oracle in een oneindige recursie draaien zonder EMP_ID != MANAGER_ID staat, omdat E40 zou terug verbinden met E40 .
Merk op dat een betere benadering voor het schrijven van deze query is om NOCYCLE te gebruiken optie in plaats van coderen in een expliciete controle:
SELECT *
FROM Temp
START WITH EMP_ID = 'E90'
CONNECT BY NOCYCLE PRIOR EMP_ID = MANAGER_ID
ORDER BY EMP_ID