Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 07/12/2009 21:40:22
- imenisg
- Membre
fetch
je veux que ma fonction retourne plusieurs lignes
CREATE OR REPLACE FUNCTION reffunc2()
RETURNS refcursor AS
$BODY$
DECLARE
ref refcursor;
BEGIN
OPEN ref FOR SELECT * FROM deplacee;
RETURN ref;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION reffunc2() OWNER TO postgres;
puis
SELECT reffunc2();
el elle retourne
reffunc2
--------------------
<unnamed portal 5>
(1 row)
FETCH ALL IN "<unnamed portal 5>"
RESULTAT
ERROR: cursor "<unnamed portal 5>" does not exist
merci d'avance
Hors ligne
#2 08/12/2009 15:20:15
- imenisg
- Membre
Re : fetch
bonjour a tous
j ai essayer cette fonction .elle ecrit juste mais je ne sais pas pourquoi elle ne marche pas
si quel qu'un peut m'aider
merci d'avance
Hors ligne
#3 08/12/2009 16:07:06
- gleu
- Administrateur
Re : fetch
Le curseur n'est valable que dans une transaction.
Guillaume.
Hors ligne
#4 08/12/2009 17:18:19
- imenisg
- Membre
Re : fetch
bonjour
jai pas compris est ce que tu peut m'expliquer un peu
cette fonction j'ai trouver dans les documents du postgresql
merci d'avance
Hors ligne
#5 08/12/2009 17:32:27
- gleu
- Administrateur
Re : fetch
Le SELECT et le FETCH ALL doivent se trouver dans la même transaction, ie:
BEGIN;
SELECT reffunc2();
FETCH ALL IN "le portal renvoyé";
COMMIT;
Guillaume.
Hors ligne
#6 10/12/2009 16:32:07
- imenisg
- Membre
Re : fetch
j'ai fait cette fonction mais elle retourne
Le résultat de la requête contient 1 ligne(s) non-extraite(s).
Le résultat de la requête contient 1 ligne(s) non-extraite(s).
La requête a été exécutée avec succès en 12 ms, mais ne renvoie aucun résultat.
elle ne retourne pas les lignes des tables
merci d'avance
Hors ligne
#7 11/12/2009 14:41:08
- gleu
- Administrateur
Re : fetch
As-tu essayé avec psql ? le comportement n'est pas forcément le même.
Guillaume.
Hors ligne