Du verkar ha förvirrat explicita markörer, t.ex.:
declare
cursor cur is
select dummy from dual;
begin
for rec in cur
loop
dbms_output.put_line(rec.dummy);
end loop;
end;
/
med en ref-markör - som är en pekare till en öppen markör.
Du skulle vanligtvis använda en ref-markör för att öppna en markör i db och skicka tillbaka den till den anropande appen för att den ska gå igenom.
Sättet du har deklarerat ref-markörerna som out-parametrar och sedan försökt gå igenom dem i samma procedur är inte meningsfullt - när du väl har hämtat en post från en markör kan du inte hämta den igen.
Om du absolut måste gå igenom en ref-markör, skulle du använda den här typen av syntax:
declare
cur sys_refcursor;
rec dual%rowtype;
begin
open cur for select dummy from dual;
loop
fetch cur into rec;
exit when cur%notfound;
dbms_output.put_line(rec.dummy);
end loop;
end;
/
men som jag sa, i allmänhet skulle du inte gå igenom ref-markörerna i db, du skulle göra det i anropskoden.
Om du uppdaterade din fråga med de krav du försöker uppfylla kan vi kanske föreslå ett bättre sätt att göra det på.