Bonjour à tous,
J'ai un merge que voici :
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'Code:
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);
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 :
Et l'insertion se fait avec un codpro différent de celui en entrée...Code:
1
2 Primary_key(TYPE_UDA, FLAG, CODPRO);
P.S : Je débute dans le MERGE :aie:, 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