I am creating a dynamic cursor and I would like to loop over the columns that exist in the cursor. How would I do that?
For example:
create or replace procedure dynamic_cursor(empid in varchar2, RC IN OUT sys_refcursor) as
stmt varchar2(100);
begin
stmt := 'select * from employees where id = ' || empid;
open RC for stmt using val;
for each {{COLUMN OR SOMETHING}}
--TODO: Get this to work
loop;
end;
You will need to use Oracle Dynamic SQL, most likely method 4.
EDIT:
Sorry, the above is for Pro*C. You will need to use the DBMS_SQL package. It’s fairly complex, but will allow you to parse, execute, and fetch any arbitrary SQL statement you need, all at run time. In particular, have a look at examples 3 and 8.