Vous n'êtes pas identifié(e).
Pages : 1
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
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
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
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
J'ai bien lu la Doc mais en fait j'étais parti à fond sous PgAdmin.
Merci encore Guillaume.
Hors ligne
pgAdmin permettra de le faire dans la prochaine version.
Guillaume.
Hors ligne
Pages : 1