Mybatis 批量插入数据 关于Oracle 批量插入

问题:用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>

猜你喜欢

转载自blog.csdn.net/qq_30125555/article/details/85111724