Utwórz typ kolekcji:
CREATE TYPE stringlist IS TABLE OF VARCHAR2(100);
/
Następnie możesz przekazać go do procedury i użyć MEMBER OF
operator (zamiast IN
operator):
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;
/
Jeśli łączysz się z języka zewnętrznego, możesz dość łatwo przekazać tablicę do procedury (przykład Java) lub możesz utworzyć listę w PL/SQL lub z listy rozdzielanej.