sql >> Base de Datos >  >> RDS >> Oracle

parámetro separado por comas en el procedimiento almacenado plsql

Me temo que no funciona de esta manera:

SELECT * from myTable where name in (inputStr);

Puede usar SQL dinámico, como en la respuesta de @Bob Jarvis, o puede hacer lo siguiente:

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

La dificultad con esto último es que, en Oracle, una expresión regular puede tener una longitud máxima de 512 bytes. Entonces tu inputStr estaría limitado a 508 bytes (ya que estamos agregando cuatro bytes para los anclajes y la agrupación).