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>
相关推荐
泡海椒9 小时前
数据占比展示:jquick-pdf饼图动态数据渲染PDF教程
数据库·oracle·pdf
2501_9336707918 小时前
2027届大数据管理与应用求职数字化转型顾问:项目、SQL、业务理解怎么排优先级
数据库·sql
资深技术分享员20 小时前
Geejing WebBuilder 数据库连接配置与在线 SQL 工具,运维的左右手
运维·数据库·sql·低代码
做运维的阿瑞21 小时前
一个 NULL 让整列姓名消失?MySQL 字符串与日期函数复盘
数据库·sql·mysql
阳光九叶草LXGZXJ1 天前
达梦数据库-学习-69-DM9主备集群部署
linux·运维·服务器·数据库·sql·学习
jnrjian1 天前
Connect Microsoft Tools to Oracle Databases powerbi 之类的oracle 客户端
数据库·microsoft·oracle
TDengine (老段)1 天前
集群从“能用“到“高可用“:副本、选主与故障切换到底怎么配
大数据·网络·数据库·物联网·oracle·时序数据库·tdengine
在猴站学算法1 天前
(SQL注入学习)联合查询注入(UNION-Based)
sql·学习·网络安全
小小龙学IT1 天前
Go 语言 database/sql 标准库深度解析:从连接池到驱动抽象
数据库·sql·golang
Seraphina361 天前
SQL注入(一)
数据库·经验分享·笔记·sql·网络安全