Die letzte Bedingung gilt nicht für Ihre Daten, aber es ist sehr wichtig, unendliche Rekursion zu vermeiden.
Um diesen Punkt zu veranschaulichen, stellen Sie sich vor, was passieren würde, wenn Sie Ihrer Tabelle eine weitere Zeile hinzufügen würden:
E40 E40
Wenn Sie mit E40
beginnen statt E90
, würde Oracle ohne EMP_ID != MANAGER_ID
in eine unendliche Rekursion geraten Bedingung, weil E40
würde zurück zu E40
verbinden .
Beachten Sie, dass ein besserer Ansatz zum Schreiben dieser Abfrage darin besteht, NOCYCLE
zu verwenden Option statt Codierung in einer expliziten Prüfung:
SELECT *
FROM Temp
START WITH EMP_ID = 'E90'
CONNECT BY NOCYCLE PRIOR EMP_ID = MANAGER_ID
ORDER BY EMP_ID