问题:用mybaits 批量插入数据到Oracle 数据库的时候,
报错:
ORA-00933: SQL 命令未正确结束 / ORA-00933: SQL command not properly ended ;
意思就是 语法错误
原因:
oracle 批量插入与mysql 的批量插入的方式是不同的,
insert into tablename()values(),(),(); ---这个是mysql 的批量插入形式
insert all into tablename() values() into tablename() values() -------这个是Oracle批量插入形式
下面记录: mybaits 批量插入数据的样式,
<insert id="insertclobtest2" parameterType="com.inspur.tax.sjaqgl.sjflfjgl.data.ClobEntity">
INSERT ALL
<foreach collection="list" item="item" index="index">
INTO ainsertclob (id, blobtest) VALUES
(#{item.id}, #{item.blobtest})
</foreach>
select 1 from dual
</insert>
方式2:
<insert id="insertclobtest3" parameterType="com.inspur.tax.sjaqgl.sjflfjgl.data.ClobEntity">
INSERT INTO ainsertclob (id, blobtest)
<foreach collection="list" item="item" index="index" separator="union all">
SELECT #{item.id} ,#{item.blobtest} from dual
</foreach>
</insert>
以上亲测可用
------------------------------------------------分割线----------------------------------------------------------
Mybaits: mysql 数据库批量插入数据的例子;
<insert id="insertclobtest1" parameterType="com.inspur.tax.sjaqgl.sjflfjgl.data.ClobEntity">
INSERT INTO ainsertclob (id, blobtest) VALUES
<foreach collection="list" item="item" separator=",">
(#{item.id}, #{item.blobtest})
</foreach>
</insert>