Bonjour,
Je viens de créer un trigger before update a son exécution, j'ai l'erreur
ORA-04091: la table ATLOG.LMP est en mutation ; le déclencheur ou la fonction ne peut la voir
ORA-06512: à "ATLOG.TBU_OLDLMP", ligne 10
ORA-04088: erreur lors d'exécution du déclencheur 'ATLOG.TBU_OLDLMP'
En clair, j'aimerai avant de valider la modification de la colonne LMP_DTPOSE
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 create or replace TRIGGER TBU_OLDLMP BEFORE update of LMP_DTPOSE ON LMP FOR EACH ROW BEGIN UPDATE LMP SET LMP.LMP_AN1 = (SELECT RLMP_LIB FROM RLMP WHERE RLMP.RLMP_ICODE= :NEW.RLMP_ICODE) WHERE LMP.LMP_ICODE=:NEW.LMP_ICODE; UPDATE LMP SET LMP.LMP_AN2 = (SELECT MLMP_LIB FROM MLMP, RLMP WHERE AND RLMP.MLMP_ICODE = MLMP.MLMP_ICODE AND RLMP.RLMP_ICODE= :NEW.RLMP_ICODE ) WHERE LMP.LMP_ICODE=:NEW.LMP_ICODE; UPDATE LMP SET LMP.LMP_NU1 = :OLD.LMP_AGE WHERE LMP.LMP_ICODE=:NEW.LMP_ICODE; UPDATE LMP SET LMP.LMP_DATE1 = :OLD.LMP_DTPOSE WHERE LMP.LMP_ICODE=:NEW.LMP_ICODE; END;
qui se trouve dans la table LMP
Copier la valeur de la colonne RLMP_LIB (table RLMP) dans la colonne LMP_AN1 (table LMP), l'identifiant de la table RLMP se trouve dans la table LMP (RLMP_ICODE)
Copier la valeur de la colonne MLMP_LIB dans la colonne LMP_AN2 (table LMP)
l'identifiant de la table MLMP (MLMP_ICODE) se trouve dans la table RLMP
Copier la valeur de la colonne LMP_AGE dans la colonne LMP_NU1, LMP_AGE et LMP_NU1 sont des colonnes de la table LMP
Copier la valeur de la colonne LMP_DTPOSE dans la colonne LMP_DATE1
LMP_DTPOSE et LMP_DATE1
sont des colonnes de la table LMP
Je chercher d'ou peut venir cette erreur.
Cdt
Cyril
Partager