Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle SQL Connect według logiki

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak utworzyć tabelę zagnieżdżoną przy użyciu typu danych zdefiniowanego przez użytkownika w bazie danych Oracle

  2. Etap APPL_TOP w aplikacjach Oracle R12

  3. Ładowanie danych do ogromnej partycjonowanej tabeli

  4. Po wykonaniu migracji z Oracle do SQL Server straciłem bazę danych SysDB. Jak mogę to odtworzyć?

  5. Oracle 12c - czy indeks w kolumnie „number” działa szybciej niż indeks w kolumnie „varchar”?