一,Mybatis Oracle实现批量插入

<insert id="insertUserBatch" parameterType="java.util.List">INSERT INTO table_user (id, user_code, user_name)<foreach collection="userList" item="item" index="index" separator="UNION ALL">select#{item.id,jdbcType=VARCHAR}, #{item.userCode,jdbcType=VARCHAR}, #{item.userName,jdbcType=VARCHAR}from dual</foreach>
</insert>

即,Oracle实现批量插入需要借助 dual(其中的一种方式)。这样实现是没有任何问题的。

二,问题

在单条数据插入时,当表中数据有字段当插入数据超过varchar2的长度(4000)时会报 “ORA-01461-仅能绑定要插入LONG列的LONG值”,这个时候只需要将该字段由varchar2类型改成blob类型(mysql)或者clob类型(Oracle)就可以了。但是注意这个是用没有实现批量插入的sql实现:

<insert id="insertUser" parameterType="com.orient.user">INSERT INTO table_user (id, user_code, user_name) values(#{item.id,jdbcType=VARCHAR}, #{item.userCode,jdbcType=VARCHAR}, #{item.userName,jdbcType=VARCHAR})
</insert>

但是用“一”中的方式批量进行插入时即便是将类型改变过来也是报此错误,其主要原因是虚表dual中的字段类型是long类型的,所以还是会报错。

三,解决方案

<insert id="insertUserBatch" parameterType="java.util.List">begin<foreach collection="userList" item="item" index="index" separator=";">INSERT INTO table_user (id, user_code, user_name) values(#{item.id,jdbcType=VARCHAR}, #{item.userCode,jdbcType=VARCHAR}, #{item.userName,jdbcType=VARCHAR})</foreach>;end;
</insert>

即,不用能借助dual表实现,通过sql拼接的方式(脚本)实现。这样就不会报这样的错误了!

mybatis批量插入报 ORA-01461-仅能绑定要插入LONG列的LONG值相关推荐

  1. (Oracle)关于blob转到目标库报ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值错误解决方案...

    在数据抽取时,开发需要clob类型的数据,但是目标库类型是blob类型的,于是抽取的时候报错: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值错误 可能有以下几种原因: 可能有以下 ...

  2. mybatis批量更新 mysql 报错,Mybatis批量更新报错问题

    下面给大家介绍mybatis批量更新报错问题, allowMultiQueries=true 后来发现是jdbc链接没有加允许批量更新操作的参数引起的,不加会报badsql,mysql版的mybati ...

  3. Mybatis批量更新报错

    Mybatis批量更新报错 1. 问题描述 2. 问题分析 3. 解决方案 1. 问题描述 使用批量更新,一直报语法错误,多次检查Mapper文件发现语法没啥问题,就是每次执行都是语法错误,花了好一会 ...

  4. 模板字符串Oracle存储超长问题:仅能绑定要插入 LONG 列的 LONG 值

    报错 The error may involve com.cbry.master.dao.JsonDataCollDao.updateRtJsonDsInfo-Inline The error occ ...

  5. Mysql + Mybatis批量更新报错 BadSqlGrammarException

    报错 项目启动没问题,查询删除等接口都没问题,Mybatis写法和SQL都没问题,数据也都没问题,批量更新数据时,报错如下 2022-03-29 10:20:37.880 ERROR 133132 - ...

  6. MYBATIS 批量update 报错的问题

    update table set column='...' where id in (1,2,3)l 这样的sql就可以了.Mybatis中这样写就行 <update id="batc ...

  7. mybatis + oracle insert clob,出现ORA-01461:仅能绑定要插入LONG列的LONG值

    在网上查了很久,有可能问题是出现在当从dual中取数据时,会将clob对象的字段转为Long型 最后的解决方法用到了Begin和end语法: 1.用到begin 和end 2.用到insert int ...

  8. mybatis批量更新报错XXXXX-Inline

    原因: 配置的 mysql jdbc 链接字符串 默认不支持一次性执行多个sql 语句.需要在配置数据库连接的url后面加上 characterEncoding=utf8&autoReconn ...

  9. oracle插入报错-Caused by: java.sql.SQLException: 无效的列类型: 16

    一.问题截图 如图我们用kettle将SqlServer数据抽取至oracle数据,因两边数据库的字段类型不一致,导致数据同步过去时报Caused by: java.sql.SQLException: ...

  10. oracle批量插入报错,[数据库]Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA

    [数据库]Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA 0 2020-08-19 08:00:06 Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA-009 ...

最新文章

  1. 解决cocos2dx 3.x 导入cocostudio的ui界面出现错位问题
  2. charshow技术预研
  3. 触摸屏之linux3.4.2安装tslib
  4. rocketmq namesrv 第一章启动过程
  5. 如何选择自己适合的引流平台?
  6. 谷歌开源容器镜像的签名和验证工具 Cosign
  7. postgresql视图
  8. android zenmode 通知,【Android系统】Android M ZenMode(禅模式)分析(2)
  9. Gaussview保存文件时,对话框一直弹不出来的原因
  10. go技巧-json转map
  11. python花瓣飘零_【动态网页】python3爬取花瓣网图片
  12. 我心中的Android REST Client--9gag
  13. 精通 Windows Server 2008 R2
  14. 工业互联网+VLC,可见光通信撬动工业4.0!
  15. phpunit问题与解决
  16. 阿里云购买云服务器流程及注意事项(新用户必看图文教程)
  17. php论坛整合,Dedecms与Discuz论坛整合方法
  18. web前端入门到实战:CSS颜色、背景和剪切
  19. JavaScript实现11位手机号码正则表达式
  20. 查看android模拟器ip地址

热门文章

  1. 600w播放,80w涨粉,B站UP主恰饭B站粉丝竟刷屏感谢甲方!
  2. 帝国cms7.5编辑信息无法修改内容和上传图片解决办法
  3. 大学计算机mooc题库,大学计算机-中国大学mooc-题库零氪
  4. E-learning的学习心得
  5. Phased Array System Toolbox
  6. 晚点采访华为鸿蒙王成录视频,看晚点团队对话华为鸿蒙操作系统掌舵人王成录的文章,其-虎嗅网...
  7. 年度全球十大突破性技术公布;华为发布数字能源零碳网络解决方案 | 美通企业日报...
  8. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java泸定中学宿舍管理系统设计g93gd
  9. 光伏并网pscad_分布式光伏电站逆变器关键技术探讨古瑞瓦特
  10. centos服务器安装Jenkins教程