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

  • 相关阅读:
    Plahte
    Sound 静音问题
    【模板】线段树 2
    winform GDI基础(四)简单截屏
    winform GDI基础(二)画带圆角的矩形框
    winform GDI基础(三)实现画笔
    winform GDI基础(一)
    winform播放视频(windows media player)
    c# 锁的使用
    C#Task学习
  • 原文地址:https://www.cnblogs.com/widget90/p/9075735.html
Copyright © 2011-2022 走看看