ok so far i am using the USING clause for dynamic bind variable query.

sql_stmt := 'SELECT id FROM caw_communities_x WHERE id IN (:1)';
EXECUTE IMMEDIATE sql_stmt BULK COLLECT INTO CommunityList USING communities;

where communities is the parameter passed to the function as a comma delimited list. But this query doesn't work this one will however work


sql_stm := 'SELECT id FROM caw_communities_x WHERE id IN (' || communities || ')';
EXECUTE IMMEDIATE sql_stm BULK COLLECT INTO CommunityList;


but i'd like to do it with the dynamic bind, is it possible?