Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
CREATE OR REPLACE TRIGGER "REPM"."TIM" BEFORE
INSERT ON "TAB" FOR EACH ROW DECLARE count_id INT:= :NEW.ID;
begin
count_id := REPM.RECHERCHE_SI_EXIST (COUNT_ID);
if (count_id < 1 ) then
insert into <a href="mailto:REPS.TAB@BS.us.oracle.com">REPS.TAB@BS.us.oracle.com</a> values
( :new.id ,:new.NOM,:new.PRENOM, :new.NE_LE );
END IF;
end;
slt a tous, voila je suis entrain de faire une replication multimaitre et mon pbm c la recursivité car mes trigger ne séarrettent pas de l'insertion, pour evité ca j'ai cree une fonction qui teste la cle 'ID' de ma table 'TAB' et retourne une valeur 'nb' qui est infecté dans le trigger a la valeur 'count_id' pour autorisé l'insertion mais j'ai tjrs le meme pbm de recursivité!!!

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE OR REPLACE  FUNCTION "REPM"."RECHERCHE_SI_EXIST" (p_id 
    number) return NUMBER IS nb number;
begin
 select p_id into nb from REPM.TAB where (REPM.TAB.id = p_id);
 if NB > 0 THEN
  RETURN NB;
  ELSE 
  RETURN NB;
 END IF;
 EXCEPTION
WHEN NO_DATA_FOUND THEN
nb :=0;
RETURN nb;
end;

merci d'avance