Oracle,sql server,mysql的批量插入
阿新 • • 發佈:2019-01-03
在使用mybatis進行批量插入時,發現對於使用Oracle的自動增長序列時提示 :
ORA-02287: 此處不允許序號 的錯誤,下面的這種使用可以解決問題:
<!-- oracle批量插入 -->
<insert id="inserts" parameterType="java.util.List">insert into PRESON
select SEQ_PRESON_ID.NEXTVAL,A.* from(
<foreach collection="list" item="item" index="index"
separator="UNION">
SELECT
#{item.presonName},
#{item.presonTel},
#{item.presonEmail},
#{item.presonAge}
from dual
</foreach>
) A
</insert>
<!--sql Server批量匯入-->
<insert id="importData" parameterType="com.ydtx.bean.pojo.materialsManage.MaterialApplyOutDetail" useGeneratedKeys="true" keyProperty="id">
insert into tb_mtl_Materialapplyoutdetail(applyCode,materialType,material,model,applyNum,unit,remark)
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.applyCode,jdbcType=VARCHAR},
#{item.materialType,jdbcType=VARCHAR},
#{item.material,jdbcType=VARCHAR},
#{item.model,jdbcType=VARCHAR},
#{item.applyNum,jdbcType=DOUBLE},
#{item.unit,jdbcType=VARCHAR},
#{item.remark,jdbcType=VARCHAR}
)