Pages

[10g] Trigger : sauvegarder les lignes d'une table dans un fichier texte après une mise à jour sujet

samedi 1 février 2014




J'ai écrit un trigger qui suite à une modif devrait enregistrer toutes les lignes d'une table dans un fichier texte.

Code:


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




Aucun commentaire:

Enregistrer un commentaire