Je créerais un type de base de données comme celui-ci :
create type v2t as table of varchar2(30);
/
Et puis dans la procédure :
FOR i IN 1..associativeArray.COUNT LOOP
databaseArray.extend(1);
databaseArray(i) := associativeArray(i);
END LOOP;
OPEN refCursor FOR
SELECT T.*
FROM SOME_TABLE T,
( SELECT COLUMN_VALUE V
FROM TABLE( databaseArray )
) T2
WHERE T.NAME = T2.V;
(où databaseArray est déclaré de type v2t.)