1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| Create or replace trigger conc.modif_trv
after update on conc.travailleur
for each row
declare
TABLE_MUTANTE EXCEPTION;
PRAGMA EXCEPTION_INIT(TABLE_MUTANTE, -4091);
begin
merge into conc.accidente_travail cible
using (
select v.numaccid , v.numcn , v.numsinist ,v.nom_accidente ,v.prenom_accidente ,
v.acctype ,v.accdatenais ,v.accprof ,v.accsexe, v.accdatesaisie , v.accdatemodif
from conc.v_atmp_travailleur v
where v.numcn=:new.trvnum) source
on (source.numcn=cible.numcn)
when matched then
update
set
cible.numaccid=source.numaccid, cible.nom_accidente=source.nom_accidente, cible.prenom_accidente=source.prenom_accidente,
cible.accdatemodif=source.accdatemodif
when not matched then
insert values (source.numaccid, source.numcn, source.numsinist,source.nom_accidente,source.prenom_accidente,
source.acctype, source.accdatenais, source.accprof, source.accsexe, source.accdatesaisie, source.accdatemodif);
--Gestion de l'erreur TABLE MUTANTE
EXCEPTION
WHEN TABLE_MUTANTE THEN
DBMS_OUTPUT.PUT_LINE('Fausse alerte');
end; |
Partager