oracle mybatis 批量插入问题

错误展示:

<insert id="batchInsertSelective" useGeneratedKeys="false">
  INSERT ALL
  <foreach collection="list" item="user">
    insert into t_user
   <trim prefix="(" suffix=")" suffixOverrides=",">
        <if test="user.userName!= null">
            user_name,
         </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="user.userName!= null">
        #{soInvoiceDetail.parentId,jdbcType=DECIMAL},
      </if>
    </trim>
   </foreach>
   SELECT 1 FROM DUAL
 </insert>

修改错误:

<insert id="batchInsertSelective" useGeneratedKeys="false">
  INSERT ALL
  <foreach collection="list" item="user">
    into t_user
   <trim prefix="(" suffix=")" suffixOverrides=",">
        <if test="user.userName!= null">
            user_name,
         </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="user.userName!= null">
        #{soInvoiceDetail.parentId,jdbcType=DECIMAL},
      </if>
    </trim>
   </foreach>
   SELECT 1 FROM DUAL
 </insert>

总结:在foreach里边使用了insert,与外层的insert all 冲突,导致报 ORA-00905: 缺失关键字 的错误,细心一点就行了


版权声明:本文为dong_1997_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。