IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Error : a column definition list is required ....


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut Error : a column definition list is required ....
    je dois réaliser une fonction en plpsql sur une base de données PostGreSQL. le probleme est que quand j'execute ma foncton, il y a une erreur et je ne sais pas d'ou elle vient. pourtant la syntaxe de ma fonction semble bonne.

    Error : a column definition list is required for functions returning "record"
    la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    -- Function: data.search_tag(varchar)
     
    -- DROP FUNCTION data.search_tag(varchar);
     
    CREATE OR REPLACE FUNCTION data.search_tag(varchar)
      RETURNS SETOF record AS
    'declare
    	rec record;
    begin
    	FOR rec IN SELECT data.evenement.evenement_id, data.evenement.evenement_debut,traitement.traitement_nom FROM traitement 
    		INNER JOIN data.evenement ON (traitement.traitement_id = data.evenement.fk_traitement_id) 
    		INNER JOIN data.ech_event ON (data.evenement.evenement_id = data.ech_event.fk_evenement_id) 
    		INNER JOIN data.dataechantillon ON (data.ech_event.ech_event_id = data.dataechantillon.fk_ech_event) 
    		WHERE data.dataechantillon.data_valeur_tex = "$1" LOOP
    	RETURN NEXT rec;
    	END LOOP;
    return null;
    end;
    '
      LANGUAGE 'plpgsql' VOLATILE;
    si quelqu'un peut m'expliquer ou est le soucis ? merci

  2. #2
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    A priori ta procedure est correcte, mais comme tu retourne un type record, tu doit appeler ta fonction un peu differement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM data.search_tag('123456') AS (evenement_id INT8, evenement_debut INT8, traitement_nom VARCHAR)
    biensur, ne connaissant pas les types de tes colonnes tu devras adapter ...
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  3. #3
    Nouveau membre du Club Avatar de Warz
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 48
    Points : 38
    Points
    38
    Par défaut
    Je relance le topic car j'ai un soucis un peu dans ce style.

    J'ai une erreur du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ERROR:  record "resultat" is not assigned yet
    DETAIL:  The tuple structure of a not-yet-assigned record is indeterminate.
    CONTEXT:  PL/pgSQL function "selectcriteresplanche" line 33 at execute statement
    J'effectue l'appel selon la réponse à la question ci-dessus qui m'a d'ailleurs bien cassé les pieds !

    2 choses m'embêtent : le deuxième champs du record (result) est de type différent selon la requête executée (dès fois INT4, dès fois VARCHAR). Est-ce embêtant ? (sachant que dans mes requêtes de résultat je force le type du résultat à varchar, peut-être que c'est pas ça qu'il faut faire déjà)

    Il me dit que le tuple n'est pas connu mais dans l'appel je dit qu'il y aura libelle et result et dans chaque requête sql executé, je retourne des valeurs que j'alias en "libelle" et "result" donc normalement tout est connu. comprends pas : : :

    Est-ce à cause de ces choses qu'il me met l'erreur citée au tout début ???

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    pour répondre de manière catégorique à ta question, il serait bien d'avoir l'extrait de la fonction concerné...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. Fatal Error : Duplicate definition of column 'id' on entity
    Par Esteban17 dans le forum Doctrine2
    Réponses: 2
    Dernier message: 22/03/2012, 13h56
  2. error 1004 columns
    Par ouioui_cmoi dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 27/03/2008, 17h37
  3. Aligner terme et définition dans une Definition list
    Par Neuromancien2 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 23/08/2007, 22h13
  4. Réponses: 2
    Dernier message: 19/04/2005, 15h31
  5. [jsp] Error #: 482 : duplicate definition of class
    Par antigone dans le forum JBuilder
    Réponses: 4
    Dernier message: 24/07/2003, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo