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

Administration PostgreSQL Discussion :

Pb suite mise à jour vers Postgresql 9 (bis)


Sujet :

Administration PostgreSQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut Pb suite mise à jour vers Postgresql 9 (bis)
    Bonjour,
    J'ai une application JSP qui utilise une base de données postgreSQL, que je viens de migrer de la version 7 vers la version 9.
    J'ai le message d'erreur suivant à l'appel d'une procédure stockée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERREUR: entrée manquante de la clause FROM pour la table « biiconfig » 
    Où : PL/pgSQL function "biielevedemandecompetence_insertion" line 15 at instruction SQL
    Le message d'erreur suggère que la clause FROM de la requête est manquante, cependant celle-ci est bien présente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT INTO datefin CURRENT_TIMESTAMP + dureedemande FROM biiconfig;
    Comment puis-je corriger cette erreur ?
    Merci d'avance.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Je me demande s'il ne serait pas nécessaire d'avoir la reste de la fonction pour comprendre l'origine de l'erreur.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut
    Voici la fonction PostgreSQL:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    -- Function: biielevedemandecompetence_insertion(integer, integer, text)
     
    -- DROP FUNCTION biielevedemandecompetence_insertion(integer, integer, text);
     
    CREATE OR REPLACE FUNCTION biielevedemandecompetence_insertion(integer, integer, text)
      RETURNS integer AS
    $BODY$
    /**DEBUT PROC**/
    DECLARE 
     
    vIDUTILISATEUR ALIAS FOR $1 ;
    vIDCOMPETENCE ALIAS FOR $2;
    vJUSTIFICATION ALIAS FOR $3;
     
    Result INTEGER ;
    CurrentId int4;
    datefin timestamp;
     
    BEGIN 
    	SELECT INTO datefin CURRENT_TIMESTAMP + dureedemande FROM biiconfig;
    	CurrentId=NEXTVAL('public.biielevedemandecompetence_id_seq'::text);
            INSERT INTO biielevedemandecompetence (id, idutilisateur, idcompetence, datedemande, justification, datefindemande, etatdemande, dateresultat, max_validation, max_refus) 
    	VALUES  (CurrentId, vIDUTILISATEUR, vIDCOMPETENCE, now(), vJUSTIFICATION, datefin, 'D', null, biiconfig.nbvalidationdemande, biiconfig.nbmaxrefus);
     
            GET DIAGNOSTICS Result := ROW_COUNT;
     
            IF Result = 0 THEN
                    RETURN -1 ;
            ELSE
                    RETURN CurrentId ;
            END IF;
     
    END
    /**FIN PROC**/
    $BODY$
      LANGUAGE plpgsql VOLATILE
      COST 100;
    ALTER FUNCTION biielevedemandecompetence_insertion(integer, integer, text) OWNER TO postgres;
    GRANT EXECUTE ON FUNCTION biielevedemandecompetence_insertion(integer, integer, text) TO postgres;
    GRANT EXECUTE ON FUNCTION biielevedemandecompetence_insertion(integer, integer, text) TO data;

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    OK donc c'est l'INSERT qui lève l'erreur et non le SELECT au-dessus.
    C'est à cause des références à biiconfig.nbvalidationdemande, biiconfig.nbmaxrefus, car la table biiconfig ne fait pas partie de la requête.
    Il y a 2 solutions:
    1) changer l'INSERT ... VALUES(...) en INSERT ... SELECT ... FROM biiconfig puisqu'il y a visiblement 1 seule ligne dans biiconfig.
    2) créer des variables correspondant à biiconfig.nbvalidationdemande et biiconfig.nbmaxrefus et les remplir dans le SELECT INTO du dessus comme c'est déjà le cas pour la variable datefin.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut
    Salut Estofilo,
    effectivement, il n'y a qu'une seule ligne dans biiconfig.
    j'ai choisi ta solution 2) et ça marche maintenant.
    Merci Estofilo !
    [RESOLU]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [9.1] Mise à jour de PostgreSQL 8.3 vers 9.1.3
    Par H4rDBuG dans le forum Installation
    Réponses: 3
    Dernier message: 06/03/2013, 21h44
  2. Erreurs suite mise à jour vers Apache Tomcat 6
    Par levalp dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 06/06/2011, 15h34
  3. Pb suite mise à jour vers Postgresql 9
    Par levalp dans le forum Administration
    Réponses: 1
    Dernier message: 17/05/2011, 16h27
  4. [phpMyAdmin] Problème suite à mise à jour vers phpMyAdmin 2.8.1
    Par inginfodz dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 24/05/2006, 10h31
  5. Problème mise à jour vers IE6 sous W2K
    Par lio33 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 11/10/2005, 11h51

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