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

项目场景:

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


问题描述

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

c 复制代码
<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;" 也就是为了补全语法
c 复制代码
<foreach item="item" index="index" collection="list"  open="begin" end=";end;"  separator=";">
	update A
	set ID=#{item.id}
	where NAME=#{item.name}
</foreach>
相关推荐
modelmd1 小时前
mysql not in 查询引发的bug问题记录
sql·mysql
scheduleTTe10 小时前
SQL增查
数据库·sql
云资源服务商14 小时前
探索阿里云DMS:解锁高效数据管理新姿势
数据库·阿里云·oracle·云计算
设计师小聂!16 小时前
尚庭公寓----------分页查询
java·开发语言·spring·maven·mybatis
马立杰17 小时前
Oracle 19.28 RU 升级最佳实践指南
数据库·oracle
SoFlu软件机器人19 小时前
告别手动报表开发!描述数据维度,AI 自动生成 SQL 查询 + Java 导出接口
java·数据库·sql
秋秋棠1 天前
MyBatis延迟加载(Lazy Loading)之“关联查询”深度解析与实践
java·mybatis
云边散步1 天前
🥢 第2篇:SELECT就是点菜,FROM就是菜单 —— 写你人生第一句SQL!
sql·mysql
两圆相切1 天前
Oracle数据泵详解——让数据迁移像“点外卖”一样简单
数据库·oracle
zone_z1 天前
Oracle 大页配置use_large_pages 参数解析
oracle·unix·dba