Re: passage de pg8 en pg 7 -> type composite

From: "thomas(dot)silvi" <thomas(dot)silvi(at)laposte(dot)net>
To: "claude C(dot)" <claude(dot)di(dot)pg(at)free(dot)fr>
Cc: liste PostgreSql FR <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: passage de pg8 en pg 7 -> type composite
Date: 2005-10-17 20:57:35
Message-ID: 4354103F.30206@laposte.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

claude C. a écrit :

> Re bonjour.
> Voici la question suivante pour tenter de passer de postgresql 8 en
> postgresql 7.4
>
> J'ai à de nombreuses reprises le bout de code suivant (ou similaire) :
>
> declare
> un_paquet_cadeau cadeau;
>
> begin
> .....
> un_paquet_cadeau_offert := row ( cadeau_surprise.id,
>
> cadeau_surprise.description,
> offrant.prenom);
> return next un_paquet_cadeau_offert;
> ....
> return;
>
> Quelle structure de langage dois-je utiliser pour pouvoir assembler
> les 2 éléments "cadeau_surprise" et "offrant" afin d'avoir, en sortie,
> un set de type cadeau ?

Hello,
dans le fichier l'example ci-joint, teste sous PostgreSQL 7.4.7, une
fonction qui contruit le type composite souhaite
est utilisee et elle est appelee pour contruire chaque ligne qui sera
retournee.

En gros

* faire une fonction

CREATE FUNCTION construit_cadeau (INT,TEXT,TEXT) RETURNS cadeau
AS '
DECLARE
v_id ALIAS FOR $1;
v_description ALIAS FOR $2;
v_prenom ALIAS FOR $3;
v_cadeau_tmp cadeau;
BEGIN
v_cadeau_tmp.id := v_id;
v_cadeau_tmp.description := v_description;
v_cadeau_tmp.prenom := v_prenom;

RETURN cadeau_tmp;
END
' LANGUAGE 'plpgsql';

*

DECLARE
un_paquet_cadeau cadeau;
...
BEGIN
...
SELECT *
INTO un_paquet_cadeau
FROM construit_cadeau (cadeau_surprise.id,
cadeau_surprise.description,
offrant.prenom);

RETURN NEXT un_paquet_cadeau;
...

RETURN;
END

Thomas

>
> Merci d'avance pour votre aide me sortant de ce bourbier.
>
> Claude C.
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend
>

Attachment Content-Type Size
livre_2.sql text/x-sql 1.0 KB

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message andy petrella 2005-10-18 12:46:27 Fwd: numeric en C
Previous Message thomas.silvi 2005-10-17 19:45:24 Re: passage PG 8 à PG 7