Salut !
J'ai un problème sous Oracle lors de l'exécution d'une requête de mise à jour d'une table :
SQL> update emp set deptno=30 where ename='FORD';
Le problème vient du trigger suivant :
SQL> Create or replace trigger modif_affect_employe after update of Deptno on Emp
2for each row
3when (OLD.Deptno <> NEW.Deptno)
4DECLARE
5CURSOR C1 IS SELECT * FROM Dept;
6BEGIN
7FOR C1_enr IN C1 LOOP
8UPDATE Dept SET NbmetierDep=Departement(C1_enr.DEPTNO) WHERE DEPTNO=C1_enr.DEPTNO;
9END LOOP;
11END;
12/
L'erreur générée est la suivante :
ERROR at line 1:
ORA-04091: table M1MG11.EMP is mutating, trigger/function may not see it
ORA-06512: at "M1MG11.DEPARTEMENT", line 4
ORA-06512: at "M1MG11.MODIF_AFFECT_EMPLOYE", line 5
ORA-04088: error during execution of trigger 'M1MG11.MODIF_AFFECT_EMPLOYE'
Je pense que cette erreur est due au fait que le trigger accède à une table en cours de modification.
Comment faire pour résoudre ce problème ???
Merci d'avance.
Alex