Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 19/02/2010 10:56:09
- mortimer.pw
- Membre
Afficher un refcursor
Bonjour à tous,
Je travaille avec PostgreSQL 8.4.2 sous CentOS 5.2.
Je voudrais afficher le résultat d'une fonction qui retourne un REFCURSOR sous psql ou PgAdmin.
Avez-vous une solution ?
Merci pour vos réponses.
Hors ligne
#2 19/02/2010 11:03:57
- gleu
- Administrateur
Re : Afficher un refcursor
Il y a certainement une solution à un problème. Mais comme aucun problème n'est décrit, il va être difficile de répondre.
Le seul truc qui me vient en tête, c'est que vous n'êtes probablement pas dans une transaction. Or il faut être dans une transaction pour utiliser un curseur.
Guillaume.
Hors ligne
#3 19/02/2010 11:39:07
- mortimer.pw
- Membre
Re : Afficher un refcursor
Bonjour,
Effectivement, peut-être en détaillant mon problème ce sera plus clair.
J'ai un développeur PHP qui me demande une fonction Pl/PgSQL.
Cette fonction doit :
- Retourner une liste de N derniers clients,
- Prendre en entrée un Curseur et un Entier(N),
- Retourner le Curseur.
J'ai créé la fonction :
CREATE OR REPLACE FUNCTION DernieresLignes(REFCURSOR,NUMERIC) RETURNS REFCURSOR AS '
DECLARE
BEGIN
OPEN $1 FOR
SELECT C.*
FROM Client C
ORDER BY C.id_client DESC LIMIT TO_NUMBER($2);
RETURN $1;
END;
' LANGUAGE 'plpgsql';
Pour vérifier que ma fonction marche et avant de la founir au développeur, je souhaite visualiser le résultat de la fonction (sous psql ou PgAdmin).
Comment faire ?
Merci pour votre aide.
Hors ligne
#4 19/02/2010 12:13:44
- gleu
- Administrateur
Re : Afficher un refcursor
BEGIN;
SELECT DernieresLignes('toto',10);
FETCH ALL IN toto;
COMMIT;
Exemple copié/collé de la documentation : http://docs.postgresql.fr/8.4/plpgsql-cursors.html
À faire dans psql, car pgAdmin auto-commit les requêtes à mon souvenir.
Guillaume.
Hors ligne
#5 19/02/2010 12:23:19
- mortimer.pw
- Membre
Re : Afficher un refcursor
J'ai bien lu la Doc mais en fait j'étais parti à fond sous PgAdmin.
Merci encore Guillaume.
Hors ligne
#6 19/02/2010 13:21:36
- gleu
- Administrateur
Re : Afficher un refcursor
pgAdmin permettra de le faire dans la prochaine version.
Guillaume.
Hors ligne
Pages : 1