From: | Sébastien Dinot <sdinot(at)april(dot)org> |
---|---|
To: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | [RESOLU] Re: Pb de type composite |
Date: | 2007-04-11 21:12:47 |
Message-ID: | 20070411211247.GA6522@achille.maison |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Bon, finalement, j'ai trouvé. Il faut faire coïncider parfaitement le
type de chaque valeur retournée par la procédure avec le membre
équivalent du type composite. En ce qui me concerne, cela passe par
deux conversions explicites :
====================================================================
CREATE TYPE adherent_a_contacter AS
(
identite VARCHAR(100),
email VARCHAR(100),
echeance DATE,
ecart INTEGER
);
CREATE FUNCTION cotisation_en_retard (VARCHAR) RETURNS SETOF adherent_a_contacter AS
'
SELECT identite::VARCHAR(100),
email::VARCHAR(100),
echeance,
ecart
FROM adherent
WHERE categorie = $1
AND ecart < 0
AND anciennete > 30
ORDER BY echeance ASC;
' LANGUAGE 'sql';
====================================================================
Cette modification résout le problème de la requête :
SELECT * FROM cotisation_en_retard('individu');
Mais pas celui de la requête :
SELECT cotisation_en_retard('individu');
Ceci étant, seule la première requête m'importe vraiment.
Désolé pour le dérangement,
Sébastien
--
Sébastien Dinot, sdinot(at)april(dot)org
Secrétaire de l'APRIL (http://www.april.org)
Association pour la Promotion et la Recherche en Informatique Libre
From | Date | Subject | |
---|---|---|---|
Next Message | Stephane Bortzmeyer | 2007-04-12 07:28:39 | Re: Trigger |
Previous Message | Sébastien Dinot | 2007-04-11 20:37:57 | Pb de type composite |