I want to create a procedure which accepts an array list for IN operator.
For eg:
Create or Replace Procedure Test (a Arraylist)
{
Select * from tab
Create a collection type:
CREATE TYPE stringlist IS TABLE OF VARCHAR2(100);
/
Then you can pass it to a procedure and use the MEMBER OF
operator (rather than the 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;
/
If you are connecting from an external language then you can quite easily pass an array to the procedure (Java example) or you can create the list in PL/SQL or from a delimited list.