Bonjours,
je pense que mon probléme est assez simple,
j'ai deux tables T1,T2 identiques, T1 est liée à une interface utilisateur, et T2 n'as aucune relation avec acune table, ce que je veux fair c'est une simulation d'import de données instantané, c'est à dire une fois l'utilisateur insert ou mis à jour la table T1, la table T2 doit être mise à jour aussi à partir de T1, j'ai pensé à crée un déclancheur, simple de type
lors d'une insertion dans la table T1, j'ai la fameuse erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE OR REPLACE TRIGGER Tf2 AFTER INSERT or update ON T1 BEGIN DELETE FROM T2; insert into T2 (select utl_raw.cast_to_varchar2(c1);utl_raw.cast_to_varchar2(c2) from T1); END ;
ORA-04091: table T1 is mutating, trigger/function may not see it
ensuite j'ai crée une procédure pragma, histoire de résoudre cela
et j'ai refais le trigger:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Create or replace procedure ifa Is pragma AUTONOMOUS_TRANSACTION; BEGIN delete from famille2; insert into famille2 (SELECT utl_raw.cast_to_varchar2(famille),utl_raw.cast_to_varchar2(libelle) from famille) ; END;
cette fois j'ai l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 create or replace trigger tf1 after insert or update on T1 for each row begin ifa; end;
ORA-06519: transaction autonome active détectée et annulée
et là je poste ma question
si quelqu'un svp veut m'orienter sur ce que je dois faire afin de palier à cela
Merci
Partager