Problème avec un déclencheur
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
Code:
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 ; |
lors d'une insertion dans la table T1, j'ai la fameuse erreur suivante:
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
Code:
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; |
et j'ai refais le trigger:
Code:
1 2 3 4 5
|
create or replace trigger tf1 after insert or update on T1 for each row
begin
ifa;
end; |
cette fois j'ai l'erreur suivante:
ORA-06519: transaction autonome active détectée et annulée
et là je poste ma question :mouarf:
si quelqu'un svp veut m'orienter sur ce que je dois faire afin de palier à cela
Merci :king: