récupérer à partir d'une fonction retournant un ref cursor pour enregistrer

J'ai une fonction dans un package qui retourne un CURSEUR de référence à un ENREGISTREMENT. Je suis en train d'appeler cette fonction à partir d'un bloc de code. Le code d'appel qui ressemble à ceci:

declare      
   a_record package_name.record_name; 
   cursor c_symbols is select package_name.function_name('argument') from dual;

begin 
   open c_symbols;   
   loop            
        fetch c_symbols into a_record;
        exit when c_symbols%notfound;              
   end loop;
   close c_symbols; 
end;

La déclaration de la fonction dans le cadre de package_name ressemble à quelque chose comme ceci:

TYPE record_name IS RECORD(
      field_a       varchar2(20);
);

TYPE record_cursor IS REF CURSOR RETURN record_name;

FUNCTION getsymbols(argument IN varchar2) return record_cursor;

Lorsque j'essaie d'exécuter l'appel de bloc de code, j'obtiens l'exception: PLS-00386: incompatibilité de type trouvé à 'EXAMPLE_SYMBOLS" entre FETCH curseur et DANS des variables.

Quel doit être le type de a_record être et comment puis-je accéder aux éléments individuels de l'enregistrement, je suis aller chercher(de type record_name)?

OriginalL'auteur neesh | 2009-07-09