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