使用<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 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;