Vous n'êtes pas identifié(e).

#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

Pied de page des forums