嗨,我正在使用Oracle 12c,并且执行了以下查询,该查询返回合并的0行。请告知我是否做错了事。
表cons_temp
包含两列,
name
,value
。
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);
答案 0 :(得分:3)
为什么要将这一行放在USING查询中?
where 1=2
那将始终为假(因为1!= 2)。因此,您的USING查询将返回零行,因此没有匹配项或不匹配项。
如果删除该WHERE子句,则您的语句将执行某些操作。