Crie um tipo de coleção:
CREATE TYPE stringlist IS TABLE OF VARCHAR2(100);
/
Então você pode passá-lo para um procedimento e usar o
MEMBER OF
operador (em vez do IN
operador):CREATE PROCEDURE Test (
in_list IN stringlist,
out_results OUT SYS_REFCURSOR
)
IS
BEGIN
OPEN out_results FOR
SELECT *
FROM your_table
WHERE your_column MEMBER OF in_list;
END;
/
Se você estiver se conectando de uma linguagem externa, poderá facilmente passar um array para o procedimento (exemplo Java) ou criar a lista em PL/SQL ou a partir de uma lista delimitada.