Bonjour à tous !
Je gère une base de données sous oracle, et je dois créer un déclencheur. J'ai décidé de le faire se déclencher lorsqu'on met à jour les données de la table Employe(IdPersonne,nom,prenom,fonction,salaire,null,null) ( null et null sont des identifiants d'autres tables ).
J'ai donc le code suivant :
Il est censé calculé la différence entre les deux salaires, et afficher Employé. Le problème, c'est qu'en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE OR REPLACE TRIGGER Declen_avtUpdate_Employe BEFORE UPDATE OR INSERT ON Employe FOR EACH ROW DECLARE sal_diff number; BEGIN sal_diff := :new.salaire - :old.salaire; DBMS_OUTPUT.PUT_LINE('Employé'); END;
puis
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO Employe VALUES(1,'dupont',Type_prenoms('jean', 'Emile','Bernard'),'patron',5000,null,null);
puis commit;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 UPDATE Employe set Employe.salaire = 2000 where Employe.IdPersonne = 1;
Le déclencheur ne se lance pas, et n'affiche pas Employe.
Je l'ai déja activé par :
Pouvez vous m'aider s'il vous plait ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER TRIGGER Declen_AvtUpdate_Employe ENABLE;
Merci d'avance !
R.
Partager