| 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: | Whole Thread | Raw Message | 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 | 
| 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 |