Ostatni warunek nie dotyczy Twoich danych, ale bardzo ważne jest, aby uniknąć nieskończonej rekurencji.
Aby zilustrować ten punkt, zastanów się, co by się stało, gdybyś dodał kolejny wiersz do tabeli:
E40 E40
Jeśli zaczynasz od E40 zamiast E90 , Oracle obracałoby się w nieskończoną rekurencję bez EMP_ID != MANAGER_ID warunek, ponieważ E40 połączy się z powrotem do E40 .
Zauważ, że lepszym podejściem do pisania tego zapytania jest użycie NOCYCLE opcja zamiast kodowania w jawnej kontroli:
SELECT *
FROM Temp
START WITH EMP_ID = 'E90'
CONNECT BY NOCYCLE PRIOR EMP_ID = MANAGER_ID
ORDER BY EMP_ID