Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle SQL Connect By Logic

Điều kiện cuối cùng không áp dụng cho dữ liệu của bạn, nhưng điều rất quan trọng là tránh đệ quy vô hạn.

Để minh họa điểm này, hãy xem xét điều gì sẽ xảy ra nếu bạn thêm một dòng khác vào bảng của mình:

E40 E40

Nếu bạn bắt đầu bằng E40 thay vì E90 , Oracle sẽ quay thành một đệ quy vô hạn mà không có EMP_ID != MANAGER_ID điều kiện, bởi vì E40 sẽ kết nối lại với E40 .

Lưu ý rằng cách tốt hơn để viết truy vấn này là sử dụng NOCYCLE thay vì viết mã trong một kiểm tra rõ ràng:

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. Truy xuất các chuỗi nhất định trong một chuỗi bằng Oracle SQL

  2. Sự cố Tạo trình kích hoạt bằng Oracle

  3. tiêu chí tìm kiếm khác biệt giữa Like và Contains () trong oracle

  4. Sự khác biệt giữa ký hiệu cộng (+) của Oracle và ký hiệu ansi JOIN?

  5. sqlplus:lỗi khi tải thư viện được chia sẻ:libsqlplus.so:không thể mở tệp đối tượng được chia sẻ:Không có tệp hoặc thư mục như vậy