项目场景:
最近在开发项目的过程中遇见了这个问题:Oracle中批量更新的时候报错 ORA-00933:SQL命令未正确结束
问题描述
mybatis批量更新报错ORA-00933:SQL命令未正确结束
<foreach item="item" index="index" collection="list" separator=";">
update A
set ID=#{item.id}
</foreach>
上边这个执行的时候报错ORA-00933:SQL命令未正确结束
原因分析:
oracle中数据库批量更新和mysql中的有些不一样,需要进行如下修改。
解决方案:
对上边的代码进行改变
- separator=“;” 这个里边一定要加分号,而不是逗号
- begin和end必须要成对出现 open=“begin” end=“;end;” 也就是为了补全语法
<foreach item="item" index="index" collection="list" open="begin" end=";end;" separator=";">
update A
set ID=#{item.id}
</foreach>