Problème avec une fonction MERGE sous oracle
* Bonjour, *
J'ai ecrit une fonction MERGE qui marche bien au niveau de base données locale. Et j'implemente la même au niveau base developpement et rien ne se passe. Urgent besoin d'aide.
Voici le code en pièce jointe:
Code:
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; |
* Merci *