[RESOLU] Re: Pb de type composite

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

In response to

Browse pgsql-fr-generale by date

  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