Hola,
Cita: Luego para manejar dicho resultado deberé recorrer tal cursor para recien poder visualizarlo...
No necesitas recorrer el sys_refcursor para visualizarlo, es decir, si lo que quieres hacer es ver el conjunto de resultados devuelto por el cursor por razones de debug y simplemente para ver que resultados hay, tienes la siguiente forma:
Creo una tabla de ejemplo y le cargo algunos datos.
Código:
SQL> create table t1 ( id number, name varchar2(20));
Table created.
SQL> insert into t1 values (1,'name 1');
1 row created.
SQL> insert into t1 values (2,'name 2');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from t1;
ID NAME
---------- --------------------
1 name 1
2 name 2
Un procedimiento que hace un select sobre la tabla y devuelve un sys_refcursor con los datos.
Código:
SQL> create or replace procedure p1
2 (c1 out sys_refcursor)
3 as
4 begin
5 open c1 for select * from t1;
6 end;
7 /
Procedure created.
Finalmente, el codigo para ejecutar el procedimiento y visualizar el resultado en SQL*Plus.
Código:
SQL> variable c1 refcursor;
SQL> execute p1(:c1);
PL/SQL procedure successfully completed.
SQL> print c1;
ID NAME
---------- --------------------
1 name 1
2 name 2
Cada herramienta de base de datos que trabaja con Oracle, ya sea TOAD, SQL Navigator, PL/SQL Developer, SQL*Plus, etc, tiene su propia forma de mostrar el resultado de un sys_refcursor sin necesidad de que te tomes el trabajo de recorrerlo.
Saludos