MERGE INTO 目标表 USING 数据源表 ON的用法(代码优化)

本文探讨了在存储过程中如何使用MERGE INTO语句进行增量数据插入,尤其是在源表数据需要通过复杂查询获取时,如何利用ON(0=1)提升效率。Oracle 10g对MERGE INTO的更新包括可选的UPDATE或INSERT子句,可添加WHERE子句,以及在ON条件中使用常量过滤以提高插入效率。同时,更新子句后可跟DELETE子句以删除不需要的记录。
摘要由CSDN通过智能技术生成

存储过程中merge into 一般用于增量插入数据,如果是源表全量数据插入目标表常规认为insert into 比merge into 效率更高,

但是数据源表的数据来源是需要查询大量关联表时然后全量录入目标表时,merge into 后面的匹配条件on(0=1) 可以使插入数据效率更高

具体的执行效率可以看完成同样事物Oracle执行时间的长短;

Oracle 9i引入的功能),其语法如下:

MERGE INTO a_crt_repay_loan t --增量切片
USING (SELECT p_date, load_num, amt1+amt2+amt3+amt4 amt  FROM (
SELECT replace(t.REPAY_DATE,'-','') p_date, t.load_num, SUM(amt1) amt1, SUM(amt2) amt2, SUM(amt3) amt3, SUM(amt4) amt4 FROM LOAN_RECYC_temp t GROUP BY t.REPAY_DATE,t.load_num
)) t1--全量切片
ON (t.repay_loan_num = t1.load_num
AND t.repay_date = t1<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值