Jeg formoder, at du mener, at din markør skal hente rækker fra REFCURSOR. Det er ikke. REFCURSOR er i sig selv en markør, du bruger ikke en anden markør til at vælge fra den.
Hvad din nuværende markør gør, er at hente en enkelt række med en enkelt kolonne, der indeholder resultatet af funktionskaldet. Som er en record_cursor
ikke et record_name
, så du får en type uoverensstemmelse.
Jeg formoder, at det du virkelig vil gøre er sådan noget her:
declare
symbol_cursor package_name.record_cursor;
symbol_record package_name.record_name;
begin
symbol_cursor := package_name.function_name('argument');
loop
fetch symbol_cursor into symbol_record;
exit when symbol_cursor%notfound;
-- Do something with each record here, e.g.:
dbms_output.put_line( symbol_record.field_a );
end loop;
CLOSE symbol_cursor;
end;