sql >> Databasteknik >  >> RDS >> Oracle

Skicka kommaseparerat nummer till IN-satsen i lagrad procedur

Slutresultatet av det du gör är detta:

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

Och vad du behöver är detta:

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

Så du kan använda detta:

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. Hur man gör en kolumn skiftlägeskänslig i sql 2005 eller 2008

  2. Använda Java för att upprätta en säker anslutning till MySQL Amazon RDS (SSL/TLS)

  3. Identitetsliknande kolumn men baserad på Group By-kriterier

  4. Ändra hur isql kör SQL