原文链接:https://blog.csdn.net/liyaowen505/article/details/88661924

    最近用到了Oracle的批量插入,批量插入的效率是真的高。
    Oracle的批量插入可以有以下两种:
    1、这种可以支持生成ID的写法,注意没有values
    说明:table_deliverable_submit_sq.NEXTVAL 获取下一个序列值

    1. <insert id="insertBatchDeliverableSubmit" parameterType="cn.xx.xxx.model.PPAP">
    2. insert into TABLE_DELIVERABLE_SUBMIT
    3. (ID,
    4. PPAPCODE,
    5. DELIVERABLEID,
    6. STATUS
    7. )
    8. select table_deliverable_submit_sq.NEXTVAL,a.* from(
    9. <foreach collection="deliverIds" item="did" separator="union all">
    10. select
    11. #{ppapCode,jdbcType=VARCHAR},
    12. #{did,jdbcType=BIGINT},
    13. '4'
    14. from dual
    15. </foreach>
    16. ) a
    17. </insert>

    2、这种不支持生成ID,不能在id的位置写上SEQ.NEXTVAL。或者你可以单独写insert触发器,注意这个有values。

    1. insert all
    2. into TABLE_DELIVERABLE_SUBMIT(ID,OTSCODE,DELIVERABLEID,STATUS) values(1,'OTS001',41,'4')
    3. into TABLE_DELIVERABLE_SUBMIT(ID,OTSCODE,DELIVERABLEID,STATUS) values(2,'OTS001',21,'4')
    4. into TABLE_DELIVERABLE_SUBMIT(ID,OTSCODE,DELIVERABLEID,STATUS) values(3,'OTS001',22,'4')
    5. into TABLE_DELIVERABLE_SUBMIT(ID,OTSCODE,DELIVERABLEID,STATUS) values(4,'OTS001',23,'4')
    6. select 1 from dual;