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

Khai báo nhiều giá trị trong các biến Oracle BIND

Các biến liên kết của Oracle là mối quan hệ 1-1, vì vậy bạn cần một biến được xác định cho từng giá trị mà bạn định đưa vào IN mệnh đề:

SELECT JOB
  FROM EMP 
 WHERE JOB IN (:JOB1, :JOB2, :JOB3, ..., :JOB3000)

Bạn cũng cần lưu ý rằng Oracle IN chỉ hỗ trợ tối đa 1.000 giá trị hoặc bạn sẽ nhận được:

Cách thay thế tốt nhất là tạo một bảng (dẫn xuất, tạm thời, thực tế hoặc chế độ xem) và kết hợp với nó để nhận các giá trị bạn muốn. IE:

SELECT a.job
  FROM EMP a
  JOIN (SELECT :JOB1 AS col FROM DUAL
        UNION ALL
        SELECT :JOB2 FROM DUAL
        UNION ALL
        SELECT :JOB3 FROM DUAL
        UNION ALL 
        ...
        UNION ALL 
        SELECT :JOB3000 FROM DUAL) b ON b.col = a.job


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Công cụ dành cho nhà phát triển Oracle cho lỗi .net studio trực quan

  2. Trả về giá trị của biến sql từ bên trong Truy vấn Sql Oracle trở lại mã .NET

  3. Chèn ngày vào cơ sở dữ liệu oracle từ PHP

  4. NHibernate - không thể tìm thấy phương ngữ (oracle) trong cấu hình

  5. Làm cách nào để chọn từ Loại Bảng Hồ sơ Được Thu thập Hàng loạt