¿Cómo pasar valores al operador IN dinámicamente?

Quiero crear un procedimiento que acepte una lista de matriz para el operador IN.

Por ejemplo:

Create or Replace Procedure Test (a Arraylist)
{
Select * from table1 where col1 IN (Arraylist)
}

Si se llama al procedimiento utilizando dos parámetros, la consulta debe ser

Select * from table1 where col1 IN (val1,val2)

Si se llama al procedimiento utilizando un parámetro, la consulta debe ser

Select * from table1 where col1 IN (val1)

Respuestas a la pregunta(1)

Su respuesta a la pregunta