Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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: livre_2.sql
Description: text/x-sql (1.0 KB)

In response to

pgsql-fr-generale by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group