在使用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}
)