我必须在表target_table中插入/更新一些RECORDS.这些记录来自一个source_table.
我在target_table中使用MERGE进行更新/插入.查询如下
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);
Run Code Online (Sandbox Code Playgroud)
我想在更新时添加一些特定条件.
IF target_table.column3 in (val1','val2)
然后只有更新,否则没有更新或插入.
psu*_*sur 25
你可以简单地添加WHERE
子句UPDATE
.在oracle文档中有关它的更多信息.
所以在你的情况下它应该看起来像:
...
WHEN MATCHED
THEN
UPDATE
SET tgt.column3= src.column3,
tgt.column4 = src.coulmn4
WHERE tgt.column3 IN (val1, val2)
WHEN NOT MATCHED
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
65258 次 |
最近记录: |