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 : 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);
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Primary_key(TYPE_UDA, FLAG, CODPRO);
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
Partager