Hola,
Te dejo procedimiento, que en resumen, incluye todos los ejemplos que creo vas a necesitar.
1. Creo el procedimiento, que toma como parametro el nombre de la tabla a la que tiene que consultar, y por parametro de salida devuelve el conjunto de resultados
Código:
oracle@A9I>
1 create or replace procedure p1 (table_name varchar2, c out sys_refcursor)
2 as
3 begin
4 open c for 'select * from ' || table_name;
5* end;
Procedimiento creado.
2. Ejecuto el procedimiento, el formato del ejemplo tiene que ver con el SQL*Plus, la llamada puede variar si se hace desde algun Driver o Provider.
Código:
oracle@A9I> variable c refcursor
oracle@A9I> exec p1('DUAL',:c);
Procedimiento PL/SQL terminado correctamente.
3. Finalmente, muestro por pantalla el conjunto de resultados de la consulta.
Código:
oracle@A9I> print c
D
-
X
Transcurrido: 00:00:00.00
Saludos