Problème de table en mutation (Oracle) [Résolu]

Messages postés
84
Date d'inscription
jeudi 18 septembre 2003
Dernière intervention
29 décembre 2006
- 21 févr. 2006 à 10:39 - Dernière réponse :
Messages postés
84
Date d'inscription
jeudi 18 septembre 2003
Dernière intervention
29 décembre 2006
- 24 févr. 2006 à 11:13
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
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
84
Date d'inscription
jeudi 18 septembre 2003
Dernière intervention
29 décembre 2006
- 24 févr. 2006 à 11:13
3
Merci
Alors j'ai trouvé la solution à mon problème :
il faut utiliser 2 triggers et une table temporaire afin de pouvoir faire l'update et ainsi virer le pb de table en mutation !!!

</FON< body>

Merci cs_steppenwolf 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_steppenwolf

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.