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 :

fonction trigger et données


Sujet :

PostgreSQL

  1. #1
    Membre confirmé Avatar de champijulie
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut fonction trigger et données
    Bonjour,

    je suis en train d'importer des données vers une base PostgreSQL mais malheureusement je me retrouve confrontée à une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERROR:  control reached end of trigger procedure without RETURN
    CONTEXTE : PL/pgSQL function "pg_fct_t_depot"
    J'ai été voir cette fonction pour voir si je trouvais une erreur mais pourtant elle renvoie bien quelque chose. Je vous donne le code de 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    CREATE OR REPLACE FUNCTION ddc_appia.pg_fct_t_depot()
      RETURNS "trigger" AS
    $BODY$
    Begin
    		Update DossierEtat
    		Set DateEffective = new.DateDepot
    		Where ID_Dossier = new.ID_Dossier
    		And ID_Etat = 1;
     
    		If SQL%NOTFOUND then
    			Insert Into DossierEtat
    				(ID_Dossier
    				,ID_Etat
    				,DateEffective)
    			values
    				(new.ID_Dossier
    				,1
    				,new.DateDepot);
    		end if;
     
     		Maj_DatesLimites(new.ID_Dossier ,1 ,new.DateDepot );
     
    return new;
    exception
    when others then Null;
    End;
    $BODY$
      LANGUAGE 'plpgsql' VOLATILE;
    ALTER FUNCTION ddc_appia.pg_fct_t_depot() OWNER TO postgres;
    Je n'arrive pas à savoir d'où ça vient car j'ai bien un return new à la fin de la fonction.
    Merci d'avance pour l'aide que vous pourrez m'apporter
    champijulie

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Par défaut
    Pendant l'exécution de ton trigger, si une erreur survient, ça part dans le bloc "exception when others then Null;" et le "return new" n'est jamais exécuté.

  3. #3
    Membre confirmé Avatar de champijulie
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    Ok j'ai bien compris mais alors comment faire pour qu'il me rrenvoit quelque chose à chaque fois?

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Par défaut
    En remplaçant le null par un return (old ou new, selon le cas désiré), par exemple

  5. #5
    Membre confirmé Avatar de champijulie
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    Ok...
    Merci beaucoup.
    A la prochaine .
    champijulie

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

Discussions similaires

  1. problème d'update dans une fonction trigger (before)
    Par ctobini dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 08/09/2006, 17h08
  2. Modifier l'État en fonction d'une donnée dans la base
    Par Pyrocyborg dans le forum Access
    Réponses: 1
    Dernier message: 30/06/2006, 18h40
  3. Fonction avec 2 données en entrée
    Par Stéphane Olivier BERNARD dans le forum Access
    Réponses: 2
    Dernier message: 29/04/2006, 20h34
  4. Comment lancer une fonction à une date donnée
    Par ideal dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/02/2006, 12h52
  5. [FOP] Changer le bckground en fonction d'une donnée
    Par lasconic dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/02/2005, 16h59

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