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 de trigger


Sujet :

Oracle

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Probleme de trigger
    Bonjour,

    j'ai un petit probleme de trigger et de procedure stocké.
    Je suis debutant et je n'arrive pas a comprendre pourquoi.
    Pouvez vous m'aider ?

    en fait j'ai une table client contenant plusieures champs dont l'un est GALOPCLIENT. c'est un nombre. je veut que chaque fois que jinsere dans CLIENT se declenche un trigger qui appelle la procedure lorsque la valeur du champ GALOPCLIENT est superieur a 9.

    Cette procedure met a jour le champ GALOPCLIENT a 9.
    (Je veut absolument utiliser le trigger plus la procedure meme si il y a moyen de faire autrement)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE OR REPLACE TRIGGER "check_galop"
    AFTER insert on client
    FOR EACH ROW WHEN (NEW.GALOPCLIENT > 9 )
    BEGIN
    	validation(:NEW.IDCLIENT);
    END;
    /

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE OR REPLACE PROCEDURE validation (id IN NUMBER)
    IS
    BEGIN
     
    	UPDATE lohigorry_client SET GALOPCLIENT=9 WHERE IDCLIENT=id;
     
    END;
    /

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    voici le message d'erreur que j'obtient lorsque
    j'insert un client dont le galopclient est superieur a 9

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     insert into CLIENT (IDCLIENT, LICENSECLIENT, NOMCLIENT, PRENOMCLIENT, TELCLIENT, GALOPCLIENT) values (19, '14544478', 'Leger', 'Emilie', '0232255623', 16);
    ERREUR à la ligne 1 :
    ORA-04091: table ETD_LOHIGORRY.LOHIGORRY_CLIENT en mutation, déclencheur/fonction ne peut la voir
    ORA-06512: à "ETD.VALIDATION", ligne 5
    ORA-06512: à "ETD.check_galop", ligne 2
    ORA-04088: erreur lors d'exécution du déclencheur 'ETD.check_galop'


    Je suis l'utilisateur ETD
    merci

  3. #3
    Membre éclairé Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 547
    Points : 670
    Points
    670
    Par défaut
    Il semble qu'il y ait aussi un trigger sur "lohigorry_client" qui cherche a lire ou mettre a jour soit la table "lohigorry_client", soit la table "client".

    Google "mutating trigger"

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Voici un excellent lien sur le problème de la table en mutation
    http://sgbd.developpez.com/oracle/ora-04091/
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    oui en fait partout ou ya marqué client c est en fait lohigorry_client je voulais pas mettre mon nom mais bon c trop tard ...
    J'ai oublié den supprimer un lol


    Sinon tu saurais pas coment je pourrai remedier a ce probleme qui ma pas l'air simple ? Je ne sais meme pas ce que c la table mutante. Je lis un truc la pour savoir ce que c'est ...

Discussions similaires

  1. probleme de trigger
    Par Melvine dans le forum PL/SQL
    Réponses: 15
    Dernier message: 01/09/2006, 16h06
  2. probleme de trigger
    Par [ME]yeye dans le forum Oracle
    Réponses: 6
    Dernier message: 15/06/2006, 15h33
  3. Problème comportement trigger
    Par ameno_123 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 04/05/2006, 00h20
  4. Probleme de trigger
    Par Lomme dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 09/03/2006, 10h39
  5. [JDBC]Probleme avec trigger Oracle
    Par aurel89 dans le forum JDBC
    Réponses: 2
    Dernier message: 02/08/2005, 11h53

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