Oracle merge into 函数 (增量更新、全量更新)

1、数据导入功能,存在全量更新/增量更新的问题,简单记录使用 oracel 的 merge into 函数。

2、全量更新(覆盖模式):数据库存在该条数据时,做更新操作。不存在时,做新增操作

3、增量更新(跳过模式):数据库存在该条数据时,不做任何操作,不存在时,做新增操作。

4、merge into 对千万级以上的数据更新,速度比较慢。

增量更新和全量更新
该语法用于:
判断B表和A表是否满足ON中条件,如果满足则用B表去更新A表(或其他操作),
如果不满足,则将B表数据插入A表但是有很多可选项(或其他操作).

其中:B表是作为条件来源或数据对比的作用,实际操作,一般是针对A表.

merge into [target-table] A 
   using [source-table sql] B
    on ([conditional expression] and [...]...)
when matched then      -- 当on中的条件匹配时
	[update sql]       -- 执行操作   更新或删除等
when not matched then  -- 当on中的条件不匹配时
	[insert sql]       -- 执行操作   新增等

/**

该语法用于:
    判断B表和A表是否满足ON中条件,如果满足则用B表去更新A表(或其他操作),
    如果不满足,则将B表数据插入A表但是有很多可选项(或其他操作).
    
其中:B表是作为条件来源或数据对比的作用,实际操作,一般是针对A表.

**/
merge into t_s_organizations_new
using  (select * from t_s_district t)t_s_district
on (t_s_organizations_new.idd = t_s_district.idd)
when matched then
update set t_s_organizations_new.val = t_s_district.val,t_s_organizations_new.name=t_s_district.name
when not matched then
insert sql

来源于:https://blog.csdn.net/weixin_41922349/article/details/88052113

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值