* 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 *