oracle批量的 新增/删除/ 修改(有则修改,否新增)
oracle批量新增
·
<insert id="saveBatch" parameterType="java.util.List">
<!--@mbg.generated-->
insert IGNORE into TAB_SYS_CONFIG_WARN
(ID, SEND_PROVINCE,SEND_PROVINCE_ID, DELIVERY_PROVINCE,DELIVERY_PROVINCE_ID, SEND_DELIVERY_PROVINCE, TIKI, SHOPEE, TIKTOK,
LAZADA_C2C, LAZADA_LAST_MILE, CREATE_TIME, UPDATE_TIME, CREATE_BY, CREATE_BY_NAME,
UPDATE_BY, UPDATE_BY_NAME, IS_DELETE, VERSION)
select t.* from
(
<foreach collection="list" item="item" index="index" separator="UNION ALL">
select
#{item.id,jdbcType=VARCHAR}, #{item.sendProvince,jdbcType=VARCHAR},#{item.sendProvinceId,jdbcType=DECIMAL},
#{item.deliveryProvince,jdbcType=VARCHAR},#{item.deliveryProvinceId,jdbcType=DECIMAL},
#{item.sendDeliveryProvince,jdbcType=VARCHAR}, #{item.tiki,jdbcType=DECIMAL}, #{item.shopee,jdbcType=DECIMAL},
#{item.tiktok,jdbcType=DECIMAL}, #{item.lazadaC2c,jdbcType=DECIMAL}, #{item.lazadaLastMile,jdbcType=DECIMAL},
#{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.createBy,jdbcType=VARCHAR},
#{item.createByName,jdbcType=VARCHAR}, #{item.updateBy,jdbcType=VARCHAR}, #{item.updateByName,jdbcType=VARCHAR},
#{item.isDelete,jdbcType=DECIMAL}, #{item.version,jdbcType=DECIMAL}
from dual
</foreach>
) t
</insert>
<delete id="deleteBatchIds" parameterType="java.util.List">
delete TAB_SYS_CONFIG_WARN where 1 = 1
AND ID IN
<!-- 处理in的集合超过1000条时Oracle不支持的情况 -->
<trim suffixOverrides=" OR PK_ID IN()"> <!-- 表示删除最后一个条件 -->
<foreach collection="ids" item="item" index="index" open="(" close=")">
<if test="index != 0">
<choose>
<when test="index % 1000 == 999">) OR ID IN (</when>
<otherwise>,</otherwise>
</choose>
</if>
#{item}
</foreach>
</trim>
</delete>
<insert id="saveBatch" parameterType="java.util.List">
<!--@mbg.generated-->
insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(TAB_SYS_CONFIG_WARN,SENDANDDELIVERYINDEX) */ into TAB_SYS_CONFIG_WARN
(ID, SEND_PROVINCE,SEND_PROVINCE_ID, DELIVERY_PROVINCE,DELIVERY_PROVINCE_ID, SEND_DELIVERY_PROVINCE, TIKI, SHOPEE, TIKTOK,
LAZADA_C2C, LAZADA_LAST_MILE, CREATE_TIME, UPDATE_TIME, CREATE_BY, CREATE_BY_NAME,
UPDATE_BY, UPDATE_BY_NAME, IS_DELETE, VERSION)
select t.* from
(
<foreach collection="list" item="item" index="index" separator="UNION ALL">
select
#{item.id,jdbcType=VARCHAR}, #{item.sendProvince,jdbcType=VARCHAR},#{item.sendProvinceId,jdbcType=DECIMAL},
#{item.deliveryProvince,jdbcType=VARCHAR},#{item.deliveryProvinceId,jdbcType=DECIMAL},
#{item.sendDeliveryProvince,jdbcType=VARCHAR}, #{item.tiki,jdbcType=DECIMAL}, #{item.shopee,jdbcType=DECIMAL},
#{item.tiktok,jdbcType=DECIMAL}, #{item.lazadaC2c,jdbcType=DECIMAL}, #{item.lazadaLastMile,jdbcType=DECIMAL},
#{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.createBy,jdbcType=VARCHAR},
#{item.createByName,jdbcType=VARCHAR}, #{item.updateBy,jdbcType=VARCHAR}, #{item.updateByName,jdbcType=VARCHAR},
#{item.isDelete,jdbcType=DECIMAL}, #{item.version,jdbcType=DECIMAL}
from dual
</foreach>
) t
</insert>
<insert id="saveBatch" parameterType="java.util.List">
merge into TAB_SYS_CONFIG_WARN T
using (
select #{item.id,jdbcType=VARCHAR}, #{item.sendProvince,jdbcType=VARCHAR},#{item.sendProvinceId,jdbcType=DECIMAL},
#{item.deliveryProvince,jdbcType=VARCHAR},#{item.deliveryProvinceId,jdbcType=DECIMAL},
#{item.sendDeliveryProvince,jdbcType=VARCHAR}, #{item.tiki,jdbcType=DECIMAL}, #{item.shopee,jdbcType=DECIMAL},
#{item.tiktok,jdbcType=DECIMAL}, #{item.lazadaC2c,jdbcType=DECIMAL}, #{item.lazadaLastMile,jdbcType=DECIMAL},
#{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.createBy,jdbcType=VARCHAR},
#{item.createByName,jdbcType=VARCHAR}, #{item.updateBy,jdbcType=VARCHAR}, #{item.updateByName,jdbcType=VARCHAR},
#{item.isDelete,jdbcType=DECIMAL}, #{item.version,jdbcType=DECIMAL}
from dual
) T1
on(T.SEND_PROVINCE = T1.SEND_PROVINCE and T.DELIVERY_PROVINCE = T1.DELIVERY_PROVINCE )
when matched then
update set
T.SEND_PROVINCE = T1.SEND_PROVINCE,T.SEND_PROVINCE_ID=T1.SEND_PROVINCE_ID, T.DELIVERY_PROVINCE=T1.DELIVERY_PROVINCE,
T.DELIVERY_PROVINCE_ID = T1.DELIVERY_PROVINCE_ID, T.SEND_DELIVERY_PROVINCE=T1.SEND_DELIVERY_PROVINCE,
T.TIKI=T1.TIKI, T.SHOPEE=T1.SHOPEE, T.TIKTOK=T1.TIKTOK,
T.LAZADA_C2C=T1.LAZADA_C2C, T.LAZADA_LAST_MILE=T1.LAZADA_LAST_MILE, T.CREATE_TIME=T1.CREATE_TIME,
T.UPDATE_TIME=T1.UPDATE_TIME, T.CREATE_BY=T1.CREATE_BY, T.CREATE_BY_NAME=T1.CREATE_BY_NAME,
T.UPDATE_BY=T1.UPDATE_BY, T.UPDATE_BY_NAME=T1.UPDATE_BY_NAME, T.IS_DELETE=T1.IS_DELETE, T.VERSION=T1.VERSION
when not matched then
insert( ID, SEND_PROVINCE,SEND_PROVINCE_ID, DELIVERY_PROVINCE,DELIVERY_PROVINCE_ID, SEND_DELIVERY_PROVINCE, TIKI, SHOPEE, TIKTOK,
LAZADA_C2C, LAZADA_LAST_MILE, CREATE_TIME, UPDATE_TIME, CREATE_BY, CREATE_BY_NAME,
UPDATE_BY, UPDATE_BY_NAME, IS_DELETE, VERSION
)values (
T1.ID, T1.SEND_PROVINCE,T1.SEND_PROVINCE_ID, T1.DELIVERY_PROVINCE,T1.DELIVERY_PROVINCE_ID, T1.SEND_DELIVERY_PROVINCE, T1.TIKI, T1.SHOPEE, T1.TIKTOK,
T1.LAZADA_C2C, T1.LAZADA_LAST_MILE, T1.CREATE_TIME, T1.UPDATE_TIME, T1.CREATE_BY, T1.CREATE_BY_NAME,
T1.UPDATE_BY, T1.UPDATE_BY_NAME, T1.IS_DELETE, T1.VERSION
)
</insert>
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)