A última condição não se aplica aos seus dados, mas é muito importante evitar a recursão infinita.
Para ilustrar esse ponto, considere o que aconteceria se você adicionasse outra linha à sua tabela:
E40 E40
Se você começar com
E40 em vez de E90 , o Oracle iria girar em uma recursão infinita sem EMP_ID != MANAGER_ID condição, porque E40 conectaria de volta ao E40 . Observe que uma abordagem melhor para escrever esta consulta é usar
NOCYCLE opção em vez de codificar em uma verificação explícita:SELECT *
FROM Temp
START WITH EMP_ID = 'E90'
CONNECT BY NOCYCLE PRIOR EMP_ID = MANAGER_ID
ORDER BY EMP_ID