Vous voulez ajouter des conditions dans l'instruction MERGE dans oracle sql for insert / update

Je dois insérer/mettre à jour des ENREGISTREMENTS dans la table target_table. Ces dossiers sont à venir, un source_table.

Je suis en utilisant la FUSION de mise à jour/insertion dans target_table. La requête est comme ci-dessous

MERGE
   INTO  target_table tgt
   USING source_table src
   ON  ( src.column1 = tgt.column1 and
         src.column2 = tgt.column2)
WHEN MATCHED
THEN
   UPDATE
   SET   tgt.column3= src.column3,
         tgt.column4 = src.coulmn4   
WHEN NOT MATCHED
   THEN
INSERT ( tgt.column1,
         tgt.column2,
         tgt.column3,
         tgt.column4 )
VALUES ( src.coulmn1,
         src.coulmn2,
         src.coulmn3,
         src.coulmn4);

Je veux ajouter une condition spécifique sur la mise à jour.

IF target_table.column3 in (val1','val2)

alors seulement, il devrait être mis à jour, sinon pas de mise à jour ou insérer.

source d'informationauteur Bit_hunter