sql >> Databáze >  >> RDS >> Oracle

načíst z funkce vracející referenční kurzor k záznamu

Mám podezření, že si myslíte, že váš kurzor by měl načítat řádky z REFCURSORu. To není. REFCURSOR je sám o sobě kurzor, k výběru z něj nepoužijete jiný kurzor.

Váš aktuální kurzor načítá jeden řádek s jedním sloupcem, který obsahuje výsledek volání funkce. Což je record_cursor není record_name , takže dojde k neshodě typu.

Mám podezření, že to, co opravdu chcete udělat, je něco takového:

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. Jak používat připravené příkazy v dotazech s klauzulí IN v PHP

  2. Chyba vypršení časového limitu příkazu mysql

  3. Porovnejte obrázek BLOB s obrázky uloženými jako ORDImage pomocí SQL/MM Still Image

  4. Proč Hibernate přešel na používání LONG přes CLOB?