zoukankan      html  css  js  c++  java
  • 使用mybatis向oracle数据库插入数据异常

    遇到了使用mybatis向oracle数据库插入数据异常的问题,

    具体的报错如下:org.springframework.jdbc.UncategorizedSQLException:
    ### Error updating database.  Cause: java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值


    mybatis的脚本如下:

         <insert id="insertInfos" parameterType="java.util.List">
            INSERT INTO
            INFO(
            RECORD_ID,
            CONTENT
            )
            <foreach close=")" collection="list" item="item" index="index"
                open="(" separator="union">
                select
                #{item.recordId,jdbcType=VARCHAR},
                #{item.content,jdbcType=VARCHAR}
                from dual
            </foreach>
        </insert>

    后面做了很多测试分析,确认是因为参数List过长,导致此问题,后面修改mybatis的脚本,

    在最外层使用BEGIN、END包裹,然后使用foreach循环并在循环完成具体的数据库字段映射;

    如下:

        <insert id="insertInfos" parameterType="java.util.List">
            BEGIN
            <foreach close="" collection="list" item="item" index="index"
                open="" separator=";">
                INSERT INTO
                INFO(
                RECORD_ID,
                REQ_CONTENT
                )
                VALUES(
                #{item.recordId,jdbcType=VARCHAR},
                #{item.rspContent,jdbcType=VARCHAR}
                )
            </foreach>
            ;END;
        </insert>

    注意在后面可以正确使用的脚本中,separator=";"  这里的分号不可以去掉的!

  • 相关阅读:
    多线程《三》进程与线程的区别
    多线程《二》开启线程的两种方式
    多线程《一》线程理论
    多进程《七》生产者消费者模型
    多进程《六》队列
    互斥锁与join
    多进程《五》互斥锁
    多进程《四》守护进程
    再度认识未来——2.11
    开始——2.10
  • 原文地址:https://www.cnblogs.com/widget90/p/9075735.html
Copyright © 2011-2022 走看看