Oracle中mybatis批量更新报错ORA-00933:SQL命令未正确结束

项目场景:

最近在开发项目的过程中遇见了这个问题:Oracle中批量更新的时候报错 ORA-00933:SQL命令未正确结束


问题描述

mybatis批量更新报错ORA-00933:SQL命令未正确结束

<foreach item="item" index="index" collection="list" separator=";">
	update A
	set ID=#{
   item.id}
	where NAME=#{
   item.name}
</foreach>

上边这个执行的时候报错ORA-00933:SQL命令未正确结束


原因分析:

oracle中数据库批量更新和mysql中的有些不一样,需要进行如下修改。


解决方案:

对上边的代码进行改变

  1. separator=“;” 这个里边一定要加分号,而不是逗号
  2. begin和end必须要成对出现 open=“begin” end=“;end;” 也就是为了补全语法
<foreach item="item" index="index" collection="list"  open="begin" end=";end;"  separator=";">
	update A
	set ID=#{
   item.id}
	where NAME=#{
   item.name}
</foreach>

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 04:20:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 04:20:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 04:20:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 04:20:03       20 阅读

热门阅读

  1. What is John Deere diagnostic software called?

    2023-12-08 04:20:03       31 阅读
  2. Uni-App知识点

    2023-12-08 04:20:03       35 阅读
  3. STL-空间配置器

    2023-12-08 04:20:03       34 阅读
  4. react(2) - react-redux的基本使用

    2023-12-08 04:20:03       39 阅读
  5. ❀My学习Linux命令小记录(15)❀

    2023-12-08 04:20:03       26 阅读
  6. 设计多级菜单的数据结构(C语言实现)

    2023-12-08 04:20:03       37 阅读
  7. 简述本人项目中常用的Typescript的知识

    2023-12-08 04:20:03       35 阅读
  8. 括号匹配的检验(数据结构实训)

    2023-12-08 04:20:03       30 阅读
  9. K8s基础

    K8s基础

    2023-12-08 04:20:03      39 阅读