Ich muss einige RECORDS in der Tabelle target_table einfügen/aktualisieren. Diese Datensätze kommen einer source_table.Möchten Sie einige Bedingungen in MERGE-Anweisung in Oracle SQL für einfügen/aktualisieren hinzufügen
Ich verwende MERGE für update/in target_table einfügen. Abfrage ist wie folgt
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);
Ich möchte einige spezifische Bedingung für die Aktualisierung hinzufügen.
IF target_table.column3 in (val1','val2)
dann nur sollte es Update sein, sonst kein Update oder einfügen.
Danke für Ihre Antwort verwenden kann. Ich werde deinen Code ausprobieren. –
@ user1965381 Ist es in Ordnung? – psur
Hallo Psur, ich habe ein ähnliches Problem, aber ich habe 2 Bedingungen in der Bedingung in Update-Klausel. Aber nur einer von ihnen funktioniert. Wenn ich beide Bedingungen verwende, werden 0 Datensätze aktualisiert, ansonsten werden ~ 700K oder ~ 80K Datensätze aktualisiert. Mit beiden Bedingungen erwarte ich, dass nur ~ 60 Datensätze aktualisiert werden. Irgendwelche Hinweise wären eine große Hilfe. Vielen Dank! – KLeonine