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