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

SQL Oracle Discussion :

Déclencheur créé avec erreurs de compilation.


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Points : 59
    Points
    59
    Par défaut Déclencheur créé avec erreurs de compilation.
    salut tout le monde, j'ai crée un Trigger et lors de l'exécution on m'affiche toujours ce message alors qui est apparemment juste!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE OR REPLACE TRIGGER TRG_PERSONNEL_NOM
    AFTER UPDATE OF DIRECTION ON PERSONNEL
    for each row
    declare
    begin
    update AVANCE set DIRECTION = :new.DIRECTION WHERE MATRICULE=PERSONNEL.MATRICULE
    COMMIT
    END;
    /
    Je voudrai mettre à jour le champs (direction) dans la table personnel et qu'elle soit aussi à jour dans la table Avance

  2. #2
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 357
    Points : 280
    Points
    280
    Par défaut
    pour voir les erreurs de compilation en sqlplus tu peux taper la commande

    SHOW ERRORS TRIGGER USER.TRIGGER_NAME
    Sinon pour ton cas

    1-rajoute des ;
    2-enleve le commit
    3 - remplace PERSONNEL.MATRICULE par :new.matricule
    4- Verifie que un trigger AFTER accepte la syntaxe :new/:old

  3. #3
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 306
    Points
    5 306
    Par défaut
    et aussi ajoutes un ; après chaque ordre sql....

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Points : 59
    Points
    59
    Par défaut
    oui, merci beaucoup ça a marché. voici le code sans erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE OR REPLACE TRIGGER TRG_PERSONNEL_NOM
    AFTER UPDATE OF DIRECTION ON PERSONNEL
    FOR each row
    declare
    begin
    UPDATE AVANCE SET DIRECTION = :new.DIRECTION WHERE MATRICULE=:new.MATRICULE;
    END;
    merci beaucoup les mecs.
    Mais le problème, est ce que je vais répéter ce même TRIGGER pour tous le champs ???

  5. #5
    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
    Code sans erreur ???

    UPDATE AVANCE SET DIRECTION = :new.DIRECTION WHERE MATRICULE=:new.MATRICULE;
    COMMIT
    END;

    1/ Le commit sans ; va planter à la compil.
    2/ Le Commit dans un trigger va planter à l'exécution (Pas le droit de commiter dans un trigger)

  6. #6
    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
    Citation Envoyé par mehdiyou Voir le message
    Mais le problème, est ce que je vais répéter ce même TRIGGER pour tous le champs ???

    http://sheikyerbouti.developpez.com/...e=Chap6#L6.3.4

    Non, tu peux mettre une liste de colonnes dans le OF.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Points : 59
    Points
    59
    Par défaut
    oui, t'as raison, parce que je travaille sur 2 PC et donc j'ai pas fait du copier/coller. Merci en tous cas. et en ce qui concerne le trigger, je peux mettre toutes les colonnes de la table et ensuite je mets des update pour chaque colonne ?

Discussions similaires

  1. Réponses: 11
    Dernier message: 11/03/2009, 22h12
  2. Réponses: 4
    Dernier message: 03/09/2008, 01h44
  3. Réponses: 5
    Dernier message: 25/04/2006, 01h02
  4. [FreePascal]Erreur de compilation avec Dev-Pascal
    Par youngeikichi dans le forum Free Pascal
    Réponses: 3
    Dernier message: 17/02/2005, 14h22
  5. Api mysql avec Devc++, erreur de compilation
    Par Viiince dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 15/06/2004, 17h19

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