Hola,
Puedes llamar a las funciones en el select aun cuando utilizas SQL Dinamico.
Código:
SQL> desc t1
Nombre ┐Nulo? Tipo
----------------------------------------- -------- ----------------------------
ID NUMBER
DATOS VARCHAR2(30)
SQL> create or replace procedure p10 (c1 out sys_refcursor, param varchar2)
2 is
3 begin
4
5
6 open c1 for
7 'select max(id) from t1 where id in ('||param||')';
8
9 end p10;
10 /
Procedimiento creado.
En general, y en mi humilde opinion, considero este tipo de tecnicas una mala practica, aunque entiendo que en determinados escenarios no hay opcion :)
Saludos