sql >> Database >  >> RDS >> Oracle

komma gescheiden parameter in plsql opgeslagen procedure

Ik ben bang dat het niet zo werkt:

SELECT * from myTable where name in (inputStr);

U kunt dynamische SQL gebruiken, zoals in het antwoord van @Bob Jarvis, of u kunt het volgende doen:

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

De moeilijkheid met dit laatste is dat in Oracle een reguliere expressie maximaal 512 bytes lang kan zijn. Dus uw inputStr zou beperkt zijn tot 508 bytes (aangezien we vier bytes toevoegen voor de ankers en de groepering).



  1. Gegevens offline opslaan voordat ze worden gepost

  2. In PHP, hoe array-inhoud in een tabel weer te geven?

  3. Foutcode:1305. FUNCTIE of PROCEDURE bestaat niet

  4. tabelrijen bijwerken in postgres met behulp van subquery