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 :
et voila le trigger
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'
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 ;
Partager