Trigger pour replication

Fermé
NICEMAN16 - 29 avril 2008 à 21:13
UaLShark Messages postés 191 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 21 juillet 2010 - 1 mai 2008 à 15:07
Bonjour, je veux cree un trigger 'TIM' qui me permet de faire une replication d'1 base de donnée 'BM' a une autre 'BS'.
alors voila pour cela je me suis trouvé dans un pbm de recursivité, j'ai changer mon trigger pour qu'il fais la test dans ma table 'TAB' s'il ne trouve pas l'ID il fais l'insertion et la je me suis trouvé dans un probleme de table mutante.
j'ai cree alors une fonction qui fais le test a la place du trigger et lui retourne une valeur seulement l'insertion se fais que d'un coté. voila le trigger et la fonction, pour mieu comprendre les 2 table sont 'TAB' et les trigger 'TIM' ca gange que dans le dblink.

CREATE OR REPLACE FUNCTION RECHERCHE_SI_EXIST (ID NUMBER)
return NUMBER IS count_id NUMBER;
PRAGMA AUTONOMOUS_TRANSACTION;
begin
select 1 into count_id from TAB where TAB.id = id;
RETURN count_id;
end;
/


create trigger TIM
after insert on TAB
for each rOW
DECLARE count_id NUMBER;
begin
count_id := RECHERCHE_SI_EXIST (:NEW.ID);
if (count_id < 1 ) then
insert into REPM.TAB@BM.us.oracle.com values
( :new.id ,:new.NOM,:new.PRENOM, :new.NE_LE );
END IF;
end;

merci d'avance...

1 réponse

UaLShark Messages postés 191 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 21 juillet 2010 35
1 mai 2008 à 15:07
tu peux travailler avec oracle replication manager? c'est plus pro
0