终极解决方案-oracle在mybatis中批量插入数据报错java.sql.SQLException: ORA-00933: SQL 命令未正确结束

在MyBatis中使用Oracle进行批量插入时,出现`java.sql.SQLException: ORA-00933: SQL 命令未正确结束`的异常。常见原因是因为SQL语法错误,照搬了MySQL的批量插入语法。但还有一种不常见情况,即在SQL中未显式声明`useGeneratedKeys="false"`。Oracle在MyBatis的批量插入操作中,必须设定`useGeneratedKeys=“false”`以避免报错。解决此问题,只需在映射文件中明确设置该属性即可。
摘要由CSDN通过智能技术生成

oracle在mybatis中批量插入数据报错java.sql.SQLException: ORA-00933: SQL 命令未正确结束

现象

在使用MyBatis操作Oracle数据库的时候,进行批量插入数据,思路是封装一个List集合通过Myabtis的foreach标签进行循环插入,可是搬照Mysql的批量插入会产生 异常

最常见的解决方案

网络上说的最多的解决方案大致都是说由于SQL语法造成的原因,例如这样:

Error updating database.  Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束

错误的写法如下

<insert id="insertExpenseItem" parameterType="List" >
    insert into expenseItem values
    <foreach collection="list" item="item" separator="," >
        (
            seq_item.nextval,
            #{
   item.expId},
            #{
   item.type},
            #{
   item.amount}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值