Bonsoir,
lorsque j'essaie de modifier un champ pr la premiere fois , le trigger marche a merveille, mais dés que j'essaie de modifier le meme champ pour la 2eme fois , cette erreur surgit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
ORA-00001: violation de contrainte unique (UNI.SYS_C0010539)
ORA-02063: prÚcÚdant line de EXPORTSYNCHRONE
ORA-06512: Ó "UNI.TRIGGER_CHAMPS", ligne 11
ORA-04088: erreur lors d'exÚcution du dÚclencheur
'UNICAMPUS.TRIGGER_CHAMPS'
et voila le trigger
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
create or replace TRIGGER trigger_champs BEFORE UPDATE OR INSERT ON PERSONNES FOR EACH ROW
DECLARE
compt INTEGER;
valeur VARCHAR(10);
BEGIN
 if (:new.diffphoto = '1') then valeur:='O' ;
 else valeur:='N';
 end if;
compt:= SQLROWCOUNT(:new.id_personne) ;
update asynchrone@exportSynchrone set diffphoto = valeur  ,date_maj= NVL( :new.date_maj, NVL( :new.dat_creation, '01/01/1999')) where id_personne= substr( :new.id_personne ,1,(length( :new.id_personne )-12)) ; if  compt = 0 then 
insert into asynchrone@exportSynchrone (diffphoto ,date_maj,id_personne)   Values (valeur  ,NVL(:new.date_maj, NVL(:new.dat_creation, '01/01/1999')) ,substr(:new.id_personne,1,(length(:new.id_personne)-12)) ) ;   
end if ; 
END ;