Créez un type de collecte :
CREATE TYPE stringlist IS TABLE OF VARCHAR2(100);
/
Ensuite, vous pouvez le passer à une procédure et utiliser le MEMBER OF
opérateur (plutôt que le IN
opérateur):
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;
/
Si vous vous connectez à partir d'un langage externe, vous pouvez passer assez facilement un tableau à la procédure (exemple Java) ou vous pouvez créer la liste en PL/SQL ou à partir d'une liste délimitée.