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

Re: pgsql : relation does not exist ==> uniquement

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: pgsql : relation does not exist ==> uniquement
Date: 2005-11-22 21:05:33
Message-ID: 4383881D.90803@laposte.net (view raw or flat)
Thread:
Lists: pgsql-fr-generale
    Hello,
c'est apparement une limitation de la version 7.4.

voir mail de la mailing list pgsql-sql qui relate plus ou moins le meme
probleme.

http://archives.postgresql.org/pgsql-sql/2004-06/msg00014.php

une solution : migrer vers une 8.*   

    Thomas


claude C. a écrit :

> Bonjour.
>
> Voici une procédure stockée qui fonctionne parfaitement sur la version
> 8 de postgresql.
> Malheureusement, mon serveur de production est en 7.4. Et là, j'ai
> l'erreur suivante :
> ERROR:  relation "un_article" does not exist
> CONTEXTE : PL/pgSQL function "liste_complete_articles" line 29 at
> select into variables
>
> C'est la ligne liste_articles_avec_description (un_article.*,
> id_description); qui pose problème (elle ne fait que concaténer
> différents éléments pour la version 7.4 d'ailleurs)
> Si je remplace un_article.* par un_article, celui-ci est vu comme un
> nom de colonne et pose alors problème.
> Après avoir relu les docs je ne vois toujours pas où se situe le
> problème.
> Une piste ?
> Merci à vous.
>
> Claude C.
>
> Présupposé :
> les types article et article_completement_decrit sont bien déclarés et
> existants.
>
> Voici  ma procédure :
>
> create or replace function liste_complete_articles (integer, date,
> date, integer [], varchar)
>    returns setof description_article as '
>      declare
>        id_de_personne                    alias for $1;
>        debut_de_periode                alias for $2;
>        fin_de_periode                     alias for $3;
>        ids_des_articles                    alias for $4;
>        etendue                                alias for $5;
>        i                                           integer;
>        id_description                       integer;
>        un_article                             article;
>        un_article_decrit                  article_completement_decrit;
>          begin
>        -- parcours de la liste des articles
>        i := 1;
>        while ids_des_articles [i] is not null loop
>            id_un_article := ids_des_articles [i];
>                      if lower (etendue) = ''tous'' then
>                              for un_article
>                    in select *
>                        from liste_article_client_sur_periode
> (id_un_client, debut_de_periode, fin_de_periode)
>                    loop
>                        select *
>                            into un_article_decrit
>                            from liste_articles_avec_description
> (un_article.*, id_description);
>                        return next un_article_decrit;
>                end loop;
>            else
>                              select *
>                    into  un_article
>                    from  liste_article_client_sur_periode
> (id_un_client, debut_de_periode, fin_de_periode)
>                    order by date_commande desc
>                    limit 1
>                    ;
>                select *
>                    into un_article_decrit
>                    from liste_articles_avec_description (un_article.*,
> id_description);
>
>                -- on ne renvoie que des lignes qui existent !
>                if un_article_decrit.id is not null then
>                    return next un_article_decrit;
>                end if;
>            end if;
>                      i := i + 1;
>        end loop;
>                  return;
>    end;
> ' language plpgsql;
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
>               http://archives.postgresql.org
>


In response to

pgsql-fr-generale by date

Next:From: david bigand forumDate: 2005-11-23 13:36:00
Subject: appel de procédure
Previous:From: thomas.silviDate: 2005-11-22 19:33:48
Subject: Re: tableau procédure

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