Pour nommer le curseur, affectez simplement une chaîne au refcursor variables :
DECLARE
ref refcursor := ''willi'';
Le portail portera alors ce nom.
Il est important que vous attribuiez le nom avant vous ouvrez le curseur.
Si vous ne voulez pas attribuer le nom, convertissez simplement le résultat de la fonction en text , cela vous donnera le nom du curseur.
Comment utiliser FETCH dépend de l'environnement dans lequel vous l'appelez :
-
Si vous l'appelez depuis SQL, vous devez le faire comme ceci :
FETCH ALL FROM willi;Vous devrez construire l'instruction SQL en utilisant le résultat de la fonction, converti en
text. -
Si vous l'appelez depuis PL/pgSQL, vous pouvez utiliser une variable dans le
FETCHdéclaration, mais vous devez fournir une destination pour le résultat :DECLARE r refcursor; x text; -- use the correct type BEGIN r := reffunc2(); FETCH NEXT FROM r INTO x; END;