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
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement ajouter
WHERE
clauseUPDATE
. Plus à ce sujet dans oracle docs.Donc dans votre cas, il devrait ressembler à:
vous pouvez utiliser cet article pour votre question par pinal Dava
MERGE
Au lieu d'Essayer de Faire Comme ci-dessous: