需要通过一个sql批量往oracle里插入数据。
错误写法:
insert into 表名 (字段1,字段2,字段3,字段4,字段5,字段6) values
<foreach collection="mapList" item="item" separator=",">
(#{item.a},#{item.b},#{item.c},#{item.d},#{item.e},#{item.f})
</foreach>
正确写法:
<insert id="aaa">
INSERT ALL
<foreach collection="mapList" item="item" separator=" ">
into 表名 (字段1,字段2,字段3,字段4,字段5,字段6) values
(#{item.a,jdbcType=DECIMAL},#{item.b,jdbcType=VARCHAR},#{item.c,jdbcType=VARCHAR},#{item.d,jdbcType=VARCHAR},#{item.e,jdbcType=DECIMAL},#{item.f,jdbcType=DECIMAL})
</foreach>
SELECT 1 FROM DUAL
</insert>
注意:
SELECT 1 FROM DUAL 后面不能有 ; 号