J'ai écrit un trigger qui suite à une modif devrait enregistrer toutes les lignes d'une table dans un fichier texte.
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
17
18
19
20
 create or replace trigger trig_cli
   after update of nom on client for each row 
 
	 declare 
 
	 v_filehandle utl_file.file_type;
cursor cli Is
        select * from client;
	 begin
 
         v_filehandle :=utl_file.fopen('MY_DOCS','j2ee.txt','w');--Opening a file
 
         for v_cli_rec IN cli LOOP
 
            utl_file.putf(v_filehandle,'clients %s : %s\n',v_cli_rec.nom,v_cli_rec.prenom);                    
         end loop;
 
        UTL_FILE.fclose(v_filehandle);
 
     end trig_cli;
Le trigger est crée correctement.
Quand, je fais une maj de la table j'obtiens l'erreur suivante :

ORA-04091: la table MYDB.CLIENT est en mutation ; le déclencheur ou la fonction ne peut la voir
ORA-06512: à "MYDB.TRIG_CLI", ligne 5
ORA-06512: à "MYDB.TRIG_CLI", ligne 12
ORA-04088: erreur lors d'exécution du déclencheur 'MYDB.TRIG_CLI'

Y'a-t-il un moyen de corriger cette erreur ou d'exporter la table autrement pour éviter le problème de table en mutation?

Merci