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

Chuyển số được phân tách bằng dấu phẩy cho mệnh đề IN trong Thủ tục đã lưu trữ

Kết quả cuối cùng của những gì bạn đang làm là:

select * from tableName where LOCATION_ID IN ('1,2,3');

Và những gì bạn cần là cái này:

select * from tableName where LOCATION_ID IN (1,2,3);

Vì vậy, bạn có thể sử dụng cái này:

select * from tableName where LOCATION_ID in (
    select regexp_substr(P_LOCATIONS,'[^,]+{1}',1,level)
    from dual connect by level <= length(regexp_replace(P_LOCATIONS,'[^,]*')) + 1
);



No
  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 Hàm PL SQL Oracle từ Excel VBA

  2. Oracle PL / SQL Release 12.2.0.1.0 so với 12.1.0.2.0 - thực thi ngay lập tức với các tham số

  3. Khắc phục:“độ chính xác hàng đầu của khoảng thời gian quá nhỏ” trong Cơ sở dữ liệu Oracle

  4. Tách chuỗi được phân tách bằng dấu phẩy trong một chương trình được lưu trữ PL / SQL

  5. Oracle to_date () đầu ra không chính xác