merge into 当using后的select结果为空时,不能执行update和insert
2015-11-18 09:56
609 查看
今天突然发现merge into功能不起作用了,在网上找了半天,发现是merge into的一个固有bug。
无效语句如下:
因为
经过改进后:
问题就解决了。
无效语句如下:
merge into T_WORK_DRZJ a using (select * from T_WORK_DRZJ b where b.ygbh=22209 and b.rq=20151117) on (a.ygbh = 22209 and a.rq=20151117) when matched then update set a.zjnr='1111111',a.gzqk='今日录入潜在客户1人。',a.shzt=0,a.sfgk=1,a.lsh=seq_work_drzj.nextval when not matched then insert values(20151117,22209,'1111111','今日录入潜在客户2人。','','','',0,'','','',1,seq_work_drzj.nextval)
因为
select * from T_WORK_DRZJ b where b.ygbh=22209 and b.rq=20151117结果是空的,所以不能执行后面的update和insert语句。
经过改进后:
merge into T_WORK_DRZJ a using (select '22209' as ygbh, '20151116' as rq from dual) b on (a.ygbh = b.ygbh and a.rq=b.rq) when matched then update set a.zjnr='1111111',a.gzqk='今日录入潜在客户1人。',a.shzt=0,a.sfgk=1,a.lsh=seq_work_drzj.nextval when not matched then insert values(20151116,22209,'1111111','今日录入潜在客户1人。','','','',0,'','','',1,seq_work_drzj.nextval)
问题就解决了。
相关文章推荐
- 学习博客
- iOS之 动态热修补技术JSPatch
- Arduino系列教程之 – PWM的秘密
- Spring IoC
- 通过ZBOSS实现2530/2531 uart/usb wireshark 抓RF包(sniffer)
- navigationbar背景图 设置左右按钮
- 堆栈溢出问题(无限循环导致)
- matlab:clear,close,clc
- iOS 求两经纬度中心点,并返回缩放级别,可以参考
- Android中ImageView的图片宽度设置
- 对象排序
- 编译单个Java文件引入jar包
- IOS开发核心语言0bjective C
- 黑马程序员——OC基础04—block、protocol
- 启明星 微信版 会议室预定系统
- Navigation1 PUSH & POP
- WCF中常用的binding方式
- linux学习教程(一)安装篇
- ARC中强指针与弱指针
- 获取屏幕真实高度包含NavigationBar(底部虚拟按键)