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

tham số được phân tách bằng dấu phẩy trong thủ tục lưu trữ plsql

Tôi e rằng nó không hoạt động theo cách này:

SELECT * from myTable where name in (inputStr);

Bạn có thể sử dụng SQL động, như trong câu trả lời của @Bob Jarvis hoặc bạn có thể làm như sau:

SELECT * FROM myTable WHERE REGEXP_LIKE(name, '^(' || REPLACE(inputStr, ',', '|') || ')$');

Khó khăn với cái sau là, trong Oracle, một biểu thức chính quy có thể dài tối đa 512 byte. Vì vậy, inputStr của bạn sẽ được giới hạn ở 508 byte (vì chúng tôi đang thêm bốn byte cho các neo và nhóm).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gọi thủ tục Oracle với tham số kiểu bộ sưu tập PL / SQL qua .NET

  2. Tự động gia tăng trong oracle vào bảng đã được tạo

  3. Câu hỏi phỏng vấn:Làm thế nào để lấy tổng hợp 3 tháng trước ở cấp cột?

  4. Làm cách nào để tôi có được định nghĩa đầy đủ (sql) về các chế độ xem hệ thống như user_objects?

  5. Nhà phát triển SQL tinh chỉnh chế độ xem kết nối