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

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

pgsql : relation does not exist ==> uniquement en postgres 7.4 !


  • From: "claude C." <claude(dot)di(dot)pg(at)free(dot)fr>
  • To: liste PostgreSql FR <pgsql-fr-generale(at)postgresql(dot)org>
  • Subject: pgsql : relation does not exist ==> uniquement en postgres 7.4 !
  • Date: Mon, 21 Nov 2005 18:01:16 +0100
  • Message-id: <4381FD5C(dot)9090707(at)free(dot)fr>

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;





Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group