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=";"  这里的分号不可以去掉的!

  • 相关阅读:
    flask修改flask_wtf使其支持json数据的validation验证
    nsq 初学使用日记
    git的日常使用(补课)
    mysql 学习日记 悲观和乐观锁
    19.10.11学习日记随笔 mysql事务隔离性
    伸展树 Splay 模板
    NOI2004 郁闷的出纳员 Splay
    Size Balanced Tree(SBT) 模板
    HDU 4557 非诚勿扰 队列、(记一次失败的SBT尝试)
    HDU 4006 The kth great number 优先队列、平衡树模板题(SBT)
  • 原文地址:https://www.cnblogs.com/widget90/p/9075735.html
Copyright © 2011-2022 走看看