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

Oracle Discussion :

probleme trigger


Sujet :

Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut probleme trigger
    bonjour
    mon but est de gérer une base de données marchande
    j ai une table commande,une table produit, avec comme relation la table compose je n' arrive pas à comprendre mes erreurs. Le trigger doit mettre à jour les valeurs globales de la commande en fonction des changement de la quantité dans compose .Merci d'avance

    Voici mon code

    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
     
    create or replace trigger maj_commande
    after insert or update or delete
    on compose 
    for each row
    declare
    n Number;
    begin
    	if inserting then
    		update commande c
    		set c.COM_POI=COM_POI+:new.COMP_PTPP
    		and c.COM_COU=COM_COU+:new.COMP_PRTPP
    		and c.COM_POR=COM_POR+:new.COMP_FDPT
    		where c.COM_NUM=:new.COM_NUM;
    	end if;
     
    		if updating then
    			update commande c1
    			set c1.COM_POI=COM_POI+:new.COMP_PTPP-:old.COMP_PTPP
    			and c1.COM_COU=COM_COU+:new.COMP_PRTPP-:old.COMP_PRTPP
    			and c1.COM_POR=COM_POR+:new.COMP_FDPT-:old.COMP_FDPT
    			where c1.COM_NUM=:new.COM_NUM;
    		end if;
     
    		if deleting then
    			update commande c2
    			set COM_POI=COM_POI-:old.COMP_PTPP
    			and COM_COU=COM_COU-:old.COMP_PRTPP
    			and COM_POR=COM_POR-:old.COMP_FDPT
    			where c2.COM_NUM=:old.COM_NUM;
    			select count(*) into n from compose co1 where co1.COM_NUM=:old.COM_NUM;
    				if(n==0)
    				delete from commande where COM_NUM=:old.COM_NUM; 
    				end if;
    		end if;
    end;
    /
    voici les erreurs :
    Line Position Text
    7 3 PL/SQL: ORA-00933: la commande SQL ne se termine pas correctement
    5 3 PL/SQL: SQL Statement ignored
    15 4 PL/SQL: ORA-00933: la commande SQL ne se termine pas correctement
    13 4 PL/SQL: SQL Statement ignored
    23 4 PL/SQL: ORA-00933: la commande SQL ne se termine pas correctement
    21 4 PL/SQL: SQL Statement ignored
    27 10 PLS-00103: Symbole "=" rencontré à la place d'un des symboles suivants : ( - + all case mod new null any avg count current
    EDIT par bouyao lire : http://www.developpez.net/forums/viewtopic.php?t=309476
    et penser à

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    T'as essayé les updates à la main pour être sur que ça marche ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    update commande c 
          set c.COM_POI=COM_POI+:new.COMP_PTPP 
          and c.COM_COU=COM_COU+:new.COMP_PRTPP 
          and c.COM_POR=COM_POR+:new.COMP_FDPT 
          where c.COM_NUM=:new.COM_NUM;
    les AND... c'est pas bon,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE ... SET a=1, b=2, c=3 WHERE d = 10

  3. #3
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    et :
    ce n'est pas la syntaxe pl/sql

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    merci beaucoup des erreurs débutants confusion entre différents langages

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

Discussions similaires

  1. Probleme trigger-tables mutantes
    Par scariou29 dans le forum Administration
    Réponses: 2
    Dernier message: 17/11/2006, 17h13
  2. Problème trigger BEFORE UPDATE
    Par berceker united dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 30/08/2006, 16h55
  3. Probleme trigger mysql 5
    Par DarkMax dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 18/03/2006, 22h50
  4. Problem Trigger instead of
    Par bubi dans le forum Développement
    Réponses: 1
    Dernier message: 01/12/2005, 23h31
  5. probleme trigger
    Par samourai_alex dans le forum Oracle
    Réponses: 10
    Dernier message: 05/01/2005, 11h37

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