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>
相关推荐
lzhdim1 小时前
SQL 入门 15:SQL 事务:从 ACID 到四种常见的并发问题
数据库·sql
写了20年代码的老程序员6 小时前
写了 20 年 Java,我受够了 MyBatis 的 4 个瞬间
mybatis·orm
码上有光7 小时前
MySQL基本查询
数据库·mysql·oracle·期末快速复习
whn19778 小时前
查询日期报错,参数DATETIME_FMT_MODE
数据库·sql
夜雪闻竹8 小时前
sql.js WASM 实战:浏览器里跑 SQLite
javascript·sql·wasm
Gauss松鼠会8 小时前
GaussDB(DWS) GUC参数修改、查看
java·数据库·sql·数据库开发·gaussdb
yuzhiboyouye9 小时前
所有的 SQL 都要经过 Explain 优化,是什么意思
数据库·sql
星川水月11 小时前
Access数据库快速入门——外部数据导入和SQL简单查询
数据库·sql·access
ElevenS_it18811 小时前
MySQL慢查询监控与告警实战:从slow_log采集到分钟级定位慢SQL的完整链路配置
android·sql·mysql
o丁二黄o11 小时前
上下文工程实战:用Gemini镜像站构建高效办公信息处理管线
zookeeper·oracle·hbase