sql >> Database teknologi >  >> RDS >> Oracle

Send kommasepareret nummer til IN-klausulen i lagret procedure

Slutresultatet af det, du laver, er dette:

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

Og hvad du har brug for er dette:

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

Så du kan bruge dette:

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
);



  1. SNMP OUTPUT OPTIONS - Hvordan får jeg kun OID-svarværdien?

  2. MySQL SELECT rækker, der matcher Array?

  3. Indsæt data fra db til en anden db

  4. Fejlfinding af SQL Server Always On Availability Groups