Mybatis的insert into select命令未结束问题解决

Mybatis中使用insert into select命令,错误如下:

Exception in thread "main" org.springframework.jdbc.BadSqlGrammarException: 
### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束

### The error may involve cn.hna.fiber.billing.common.dao.FbPayBalanceMapper.presentBalance-Inline
### The error occurred while setting parameters
### SQL: insert into FB_PAY_BALANCE      (BALANCE_ID, PAY_ID, BALANCE_TYPE_ID, BALANCE, REAL_BALANCE, USED_BALANCE, EFF_DATE, EXP_DATE)  (  select seq_balance_id.nextval,a.pay_id,?,?, ?, ?,   ?, ?  from fb_user_info a  )
### Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束

; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束

        at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:91)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82)
        at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
        at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
        at $Proxy19.insert(Unknown Source)
        at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)
        at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:57)
        at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
        at $Proxy21.presentBalance(Unknown Source)
        at cn.hna.fiber.billing.utils.service.impl.PresentBalanceImpl.present(PresentBalanceImpl.java:62)
        at cn.hna.fiber.billing.utils.PresentBalanceMain.main(PresentBalanceMain.java:24)
原先的配置:
<insert id="presentBalance" parameterType="******">
    insert into FB_PAY_BALANCE 
    (BALANCE_ID, PAY_ID, BALANCE_TYPE_ID, BALANCE, REAL_BALANCE, USED_BALANCE, EFF_DATE, EXP_DATE)
	(
	select SEQ_BALANCE_ID.nextval,a.pay_id,#{balanceTypeId},#{balance}, #{realBalance}, #{usedBalance}, 
	#{effDate}, #{expDate}
	from fb_user_info a
	)
  </insert>

修改配置后,问题解决。
<insert id="presentBalance" parameterType="cn.hna.fiber.billing.common.pojo.FbPayBalance" useGeneratedKeys="false" >
    insert into FB_PAY_BALANCE 
    (BALANCE_ID, PAY_ID, BALANCE_TYPE_ID, BALANCE, REAL_BALANCE, USED_BALANCE, EFF_DATE, EXP_DATE)
	(
	select SEQ_BALANCE_ID.nextval,a.pay_id,#{balanceTypeId},#{balance}, #{realBalance}, #{usedBalance}, 
	#{effDate}, #{expDate}
	from fb_user_info a
	)
  </insert>

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值