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

kommasepareret parameter i plsql-lagret procedure

Jeg er bange for, at det ikke virker på denne måde:

SELECT * from myTable where name in (inputStr);

Du kan bruge dynamisk SQL, som i @Bob Jarvis' svar, eller du kan gøre følgende:

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

Vanskeligheden ved sidstnævnte er, at i Oracle kan et regulært udtryk højst være 512 byte langt. Så din inputStr ville være begrænset til 508 bytes (da vi tilføjer fire bytes til ankrene og grupperingen).



  1. Arbejde med ikke-ASCII JDBC-data i Talend

  2. Sammenligning af almindelige databaseinfrastrukturmønstre

  3. brug WHERE CLAUSE til søgedata fra A-dato til B-dato

  4. Sådan laver du en rækkefølge, der ikke skelner mellem store og små bogstaver, i Rails med postgresql