与双重合并在12c中不起作用

时间:2018-07-26 07:14:14

标签: oracle merge

嗨,我正在使用Oracle 12c,并且执行了以下查询,该查询返回合并的0行。请告知我是否做错了事。

cons_temp包含两列, namevalue

 merge into cons_temp tb
 using (select 'Freez' as NAME, 'NOI' as VALUE from dual where 1=2) v
 on (tb.NAME=v.NAME)
 when matched then update set tb.VALUE=v.VALUE
 when not matched then insert (NAME,VALUE) values(v.NAME, v.VALUE);

1 个答案:

答案 0 :(得分:3)

为什么要将这一行放在USING查询中?

where 1=2

那将始终为假(因为1!= 2)。因此,您的USING查询将返回零行,因此没有匹配项或不匹配项。

如果删除该WHERE子句,则您的语句将执行某些操作。