ORACLE-merge into实战

使用merge into方式进行数据导入

语法:

merge into 目标表 a

using 源表 b

on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……)  

when matched then update set a.更新字段=b.字段

when  not macthed then insert into a(字段1,字段2……)values(值1,值2……)

示例:

ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';
select sysdate from dual;
MERGE INTO tab1 a 
using (select/*parallel(b,24)*/ * from tab2 where id in (1,2,3)) b 
on (b.id=a.id) 
WHEN MATCHED THEN 
update 
set 
a.id=b.id,
a.name=b.name 
WHEN NOT MATCHED THEN 
INSERT VALUES 
(b.id,
b.name);
commit;
select sysdate from dual;

根据测试总结:

当表数据量在百万级别时,该方式可行。但是如若在千万级别或者亿级别,该方案不可行,执行速度较慢,导致oracle停滞时间较长。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wenxuechaozhe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值