Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Übergeben Sie eine durch Kommas getrennte Zahl an die IN-Klausel in der gespeicherten Prozedur

Das Endergebnis dessen, was Sie tun, ist Folgendes:

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

Und was Sie brauchen, ist dies:

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

Sie können also Folgendes verwenden:

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