Bonjour à tous,

J'ai un merge que voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
MERGE INTO ENV_GENX_UDA EG USING ENV_GENX_UDA EGU
        ON (EG.CODPRO='100987' AND EG.TYPE_UDA=EGU.TYPE_UDA AND EG.FLAG=EGU.FLAG)
        WHEN MATCHED THEN UPDATE SET EG.SKUD3E='DEEE4567', EG.TRAN='51'
        WHEN NOT MATCHED THEN INSERT (EG.TYPE_UDA,EG.TRAN,EG.SKUD3E,EG.POINTS,EG.CODPRO,EG.FLAG,EG.DATER,EG.DATEE)
        VALUES ('100','51','DEEE4567','','100987',' ',sysdate,sysdate);
Ce merge est censé mettre à jour ou ajouter dans la table ENV_GENX_UDA en comparant avec cette même table en fonction des paramétres dans le 'ON'


Actuellement la table ENV_GENX_UDA est vide et lorsque je lance le MERGE, rien n'est inséré dans cette table.
Lorsque je met un enregistrement à la main est que je relance, il me sort une erreur de contrainte unique.
Ma clef est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Primary_key(TYPE_UDA, FLAG, CODPRO);
Et l'insertion se fait avec un codpro différent de celui en entrée...

P.S : Je débute dans le MERGE , donc il se peut que cela soit une erreur con (Je précise que depuis hier je vais sur les forums pour essayer de faire un merge correct... Notamment http://www.oracle-developer.net/display.php?id=310)

Merci d'avance.
Dragonfly