美文网首页
Mybatis 批量更新 ORA-00911: 无效字符的错误

Mybatis 批量更新 ORA-00911: 无效字符的错误

作者: clannadyang | 来源:发表于2020-01-04 17:33 被阅读0次

使用<foreach></foreach> 批量insert时报错 ORA-00911: 无效字符的错误

<foreach collection="list" item="item" index="index" separator=";">
    insert into table1 (column1) values (#{item.num})
</foreach>

Mybatis 会打印的sql语句如下,并且报错

  insert into table1(column1) values (11) ; insert table1(column1) values (12)

上述语句是合法的SQL语句,并且放到SQL工具中可以执行。 错误的原因是Mybatis不能识别这是批量操作的2条语句,紧靠;号不能完成

解决办法: 增加foreach节点的操作符

foreach加入open和close配置

<foreach collection="list" item="item" index="index" open="begin" close=";end;" separator=";">
</foreach>

新打印的SQL将会如下所示:

begin insert into table1(column1) values (11) ; insert table1(column1) values (12) ;end;

相关文章

网友评论

      本文标题:Mybatis 批量更新 ORA-00911: 无效字符的错误

      本文链接:https://www.haomeiwen.com/subject/stkfactx.html