sql >> Databasteknik >  >> RDS >> Oracle

hämta från funktionen returnerar en ref-markör till inspelning

Jag misstänker att du tycker att markören borde hämta rader från REFCURSOR. Det är inte. REFCURSOR är i sig en markör, du använder inte en annan markör för att välja från den.

Vad din nuvarande markör gör är att hämta en enda rad, med en enda kolumn, som innehåller resultatet av funktionsanropet. Vilket är en record_cursor inte ett record_name , så du får en typ som inte matchar.

Jag misstänker att det du verkligen vill göra är något sånt här:

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;


  1. MySQL Triggers infoga i en annan tabell

  2. Varför ger Delphi (Zeos) mig widestring-fält i SQLite när jag ber om osignerad big int?

  3. Fel när du sparar och hämtar blob från databasen SQL-oracle

  4. Oracle 10g Anslut efter tidigare - Prestandaproblem