SYS_REFCURSOR Example
create or replace function f return SYS_REFCURSOR as
c SYS_REFCURSOR;
begin
open c for select empno from employees;
return c;
end;
----------------------------------------------------
declare
refCursorValue SYS_REFCURSOR;
v varchar2(1);
begin
refCursorValue := f(); -- Get ref cursor from function
loop
fetch refCursorValue into v;
exit when refCursorValue%notfound;
dbms_output.put_line('Value from cursor: '||v);
end loop;
END;
----------------------XXXXXXXXXXXXXXXXXXXXXXXXXXX-------------
declare
refCursorValue SYS_REFCURSOR;
myRecord product%rowtype;
begin
open refCursorValue for select * from product ;
loop
fetch refCursorValue into myRecord;
exit when refCursorValue%notfound;
end loop;
closerefCursorValue;
end;
create or replace function f return SYS_REFCURSOR as
c SYS_REFCURSOR;
begin
open c for select empno from employees;
return c;
end;
----------------------------------------------------
declare
refCursorValue SYS_REFCURSOR;
v varchar2(1);
begin
refCursorValue := f(); -- Get ref cursor from function
loop
fetch refCursorValue into v;
exit when refCursorValue%notfound;
dbms_output.put_line('Value from cursor: '||v);
end loop;
END;
----------------------XXXXXXXXXXXXXXXXXXXXXXXXXXX-------------
declare
refCursorValue SYS_REFCURSOR;
myRecord product%rowtype;
begin
open refCursorValue for select * from product ;
loop
fetch refCursorValue into myRecord;
exit when refCursorValue%notfound;
end loop;
closerefCursorValue;
end;