Du ser ud til at have forvirrede eksplicitte markører, f.eks.:
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 cursor - som er en pegepind til en åben markør.
Du vil typisk bruge en ref-markør til at åbne en markør i db'en og sende den tilbage til den kaldende app, så den kan gå igennem.
Den måde, du har erklæret ref-markørerne som ud-parametre og derefter forsøgt at gå igennem dem i samme procedure, giver ikke mening - når du først har hentet en post fra en markør, kan du ikke hente den igen.
Hvis du absolut skal gå gennem en ref-markør, ville du bruge denne slags syntaks:
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 jeg sagde, generelt ville du ikke gå gennem ref-markører i db'en, du ville gøre det i kaldekoden.
Hvis du opdaterede dit spørgsmål med de krav, du forsøger at opfylde, kunne vi måske foreslå en bedre måde at gøre det på.