J'utilise Postgresql 8.3 et ont la fonction simple suivante qui renverra un refcursor
au clientAppel d'une fonction qui retourne une refcursor
CREATE OR REPLACE FUNCTION function_1() RETURNS refcursor AS $$
DECLARE
ref_cursor REFCURSOR;
BEGIN
OPEN ref_cursor FOR SELECT * FROM some_table;
RETURN (ref_cursor);
END;
$$ LANGUAGE plpgsql;
Maintenant, je peux utiliser les commandes SQL suivantes pour appeler cette fonction et manipuler le curseur de retour, mais le nom du curseur est généré automatiquement par le PostgreSQL
BEGIN;
SELECT function_1(); --It will output the generated cursor name , for example , "<unnamed portal 11>" ;
FETCH 4 from "<unnamed portal 11>";
COMMIT;
en outre, déclarant explicitement le nom du curseur en tant que paramètre d'entrée de la fonction comme décrit par 38.7.3.5. Returning Cursors .Peut I de clare mon propre nom de curseur et utilise ce nom de curseur pour manipuler le curseur retourné au lieu de Postgresql génère automatiquement pour moi? Si non, existe-t-il des commandes pouvant obtenir le nom du curseur généré?
+1, question intéressante –