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>
相关推荐
智海观潮1 天前
Spark SQL解析查询parquet格式Hive表获取分区字段和查询条件
hive·sql·spark
李少兄1 天前
IntelliJ IDEA 启动项目时配置端口指南
数据库·sql·intellij-idea
白云如幻1 天前
【Java】QBC检索和本地SQL检索
java·数据库·sql
lu9up1 天前
因表并行引发的血案【故障处理案例】
数据库·oracle·dba
问道飞鱼1 天前
【大数据相关】ClickHouse命令行与SQL语法详解
大数据·sql·clickhouse
奔跑你个Run1 天前
mybatis plus 使用wrapper输出SQL
mybatis
代码的余温2 天前
Oracle RAC共享存储核心技术
数据库·oracle
float_六七2 天前
数据库物理外键与逻辑外键全解析
数据库·oracle
大白的编程日记.2 天前
【MySQL】数据库的基本操作
数据库·mysql·oracle
Jamie Chyi2 天前
【Oracle经验分享】字符串拼接过长问题的解决方案 —— 巧用 XMLAGG
数据库·oracle