mybatis 执行批量插入时Oracle数据库报错ORA-00933: SQL 下令未精确结束, ...

民工心事  金牌会员 | 2024-7-17 01:21:45 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 883|帖子 883|积分 2649

         在网上看了很多解决方法,有说sql语句之间要加空格,有说数据库连接后面要加批量插入的参数,另有去掉结尾分号的(这个有效,但是去掉分号还是报错),另有各种方法,试了都没有效,但是从mybatis log粘贴出来的sql在数据库软件就是能正常执行。
        查阅了各种资料后发现,如果不用Java代码生成的主键或者selectedkey标签生成的主键,而用数据库函数生成的主键(例如我就是用SELECT sys_guid() as id FROM DUAL 生成主键),肯定要在insert标签上参加 useGeneratedKeys="false" 这个属性,加上之后立刻就不报错了!
花了半天才解决这个题目,肯定得记录下来
下面是我用的Oracle批量插入的语句,可以参考下
  1. <insert id="batchInsertPrdSlcPackTray" parameterType="PrdSlcPackTray" useGeneratedKeys="false">
  2.   insert all
  3.   <foreach item="item" collection="prdSlcPackTrayList" separator=" " close=" SELECT 1 FROM dual ">
  4.     into prd_slc_pack_tray
  5.     <trim prefix="(" suffix=")" suffixOverrides=",">
  6.       id,
  7.       create_time,
  8.       <if test="item.createBy != null and item.createBy != ''">create_by,</if>
  9.       update_time,
  10.       <if test="item.createBy != null">update_by,</if>
  11.       <if test="item.deleted != null and item.deleted != ''">deleted,</if>
  12.       <if test="item.orgCode != null and item.orgCode != ''">org_code,</if>
  13.       <if test="item.orgShopCode != null and item.orgShopCode != ''">org_shop_code,</if>
  14.       <if test="item.trayCode != null and item.trayCode != ''">tray_code,</if>
  15.       <if test="item.itemNum != null and item.itemNum != ''">item_num,</if>
  16.       <if test="item.gradeCode != null and item.gradeCode != ''">grade_code,</if>
  17.       <if test="item.subGradeCode != null and item.subGradeCode != ''">sub_grade_code,</if>
  18.       <if test="item.resistivity != null">resistivity,</if>
  19.       <if test="item.qty != null">qty,</if>
  20.       <if test="item.status != null and item.status != ''">status,</if>
  21.       <if test="item.printBy != null">print_by,</if>
  22.       <if test="item.printTime != null">print_time,</if>
  23.       <if test="item.printCount != null">print_count,</if>
  24.       <if test="item.assembleBy != null">assemble_by,</if>
  25.       <if test="item.assembleTime != null">assemble_time,</if>
  26.       <if test="item.assembleRemarks != null">assemble_remarks,</if>
  27.       <if test="item.disassembleBy != null">disassemble_by,</if>
  28.       <if test="item.disassembleTime != null">disassemble_time,</if>
  29.       <if test="item.disassembleRemarks != null">disassemble_remarks,</if>
  30.       <if test="item.inspectBy != null">inspect_by,</if>
  31.       <if test="item.inspectTime != null">inspect_time,</if>
  32.       <if test="item.inspectRemarks != null">inspect_remarks,</if>
  33.       <if test="item.entryBy != null">entry_by,</if>
  34.       <if test="item.entryTime != null">entry_time,</if>
  35.       <if test="item.entryRemarks != null">entry_remarks,</if>
  36.       <if test="item.requisitionBy != null">requisition_by,</if>
  37.       <if test="item.requisitionTime != null">requisition_time,</if>
  38.       <if test="item.requisitionRemarks != null">requisition_remarks,</if>
  39.       <if test="item.invalidBy != null">invalid_by,</if>
  40.       <if test="item.invalidTime != null">invalid_time,</if>
  41.       <if test="item.invalidReason != null">invalid_reason,</if>
  42.     </trim>
  43.     <trim prefix=" values (" suffix=")" suffixOverrides=",">
  44.       (SELECT sys_guid() as id FROM DUAL),
  45.       SYSTIMESTAMP,
  46.       <if test="item.createBy != null and item.createBy != ''">#{item.createBy},</if>
  47.       SYSTIMESTAMP,
  48.       <if test="item.createBy != null">#{item.createBy},</if>
  49.       <if test="item.deleted != null and item.deleted != ''">#{item.deleted},</if>
  50.       <if test="item.orgCode != null and item.orgCode != ''">#{item.orgCode},</if>
  51.       <if test="item.orgShopCode != null and item.orgShopCode != ''">#{item.orgShopCode},</if>
  52.       <if test="item.trayCode != null and item.trayCode != ''">#{item.trayCode},</if>
  53.       <if test="item.itemNum != null and item.itemNum != ''">#{item.itemNum},</if>
  54.       <if test="item.gradeCode != null and item.gradeCode != ''">#{item.gradeCode},</if>
  55.       <if test="item.subGradeCode != null and item.subGradeCode != ''">#{item.subGradeCode},</if>
  56.       <if test="item.resistivity != null">#{item.resistivity},</if>
  57.       <if test="item.qty != null">#{item.qty},</if>
  58.       <if test="item.status != null and item.status != ''">#{item.status},</if>
  59.       <if test="item.printBy != null">#{item.printBy},</if>
  60.       SYSTIMESTAMP,
  61.       <if test="item.printCount != null">#{item.printCount},</if>
  62.       <if test="item.assembleBy != null">#{item.assembleBy},</if>
  63.       <if test="item.assembleTime != null">#{item.assembleTime},</if>
  64.       <if test="item.assembleRemarks != null">#{item.assembleRemarks},</if>
  65.       <if test="item.disassembleBy != null">#{item.disassembleBy},</if>
  66.       <if test="item.disassembleTime != null">#{item.disassembleTime},</if>
  67.       <if test="item.disassembleRemarks != null">#{item.disassembleRemarks},</if>
  68.       <if test="item.inspectBy != null">#{item.inspectBy},</if>
  69.       <if test="item.inspectTime != null">#{item.inspectTime},</if>
  70.       <if test="item.inspectRemarks != null">#{item.inspectRemarks},</if>
  71.       <if test="item.entryBy != null">#{item.entryBy},</if>
  72.       <if test="item.entryTime != null">#{item.entryTime},</if>
  73.       <if test="item.entryRemarks != null">#{item.entryRemarks},</if>
  74.       <if test="item.requisitionBy != null">#{item.requisitionBy},</if>
  75.       <if test="item.requisitionTime != null">#{item.requisitionTime},</if>
  76.       <if test="item.requisitionRemarks != null">#{item.requisitionRemarks},</if>
  77.       <if test="item.invalidBy != null">#{item.invalidBy},</if>
  78.       <if test="item.invalidTime != null">#{item.invalidTime},</if>
  79.       <if test="item.invalidReason != null">#{item.invalidReason},</if>
  80.     </trim>
  81.   </foreach>
  82. </insert>
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

民工心事

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表