对于一般的插入语句
insert into sys_user_post(user_id, post_id) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.userId},#{item.postId})
</foreach>
插入一条数据,这样的写法是可以的,但是如果需要插入2条以上的数据,就会引起错误
ORA-00933: SQL 命令未正确结束
正确的写法为
insert into sys_user_post(user_id, post_id)
<foreach item="item" collection="list" separator="UNION ALL">
select
#{item.userId},
#{item.postId}
from dual
</foreach>
并且在insert标签上加入
useGeneratedKeys="false"
并且记得将values关键字去掉
本文探讨了在使用foreach遍历插入数据时,如何避免ORACLE-00933错误,介绍了正确的写法,包括使用UNION ALL和移除VALUES关键字。重点在于处理多条数据插入的优化策略。
1万+

被折叠的 条评论
为什么被折叠?



