使用foreach批量插入数据时报“SQL 命令未正确结束”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用foreach批量插入数据时报“SQL 命令未正确结束”相关的知识,希望对你有一定的参考价值。
xml代码如下
<insert id="insertDemo" useGeneratedKeys="true" parameterType="java.util.List">
insert into sotp_info (ebuser_no,dev_id,sotp_id,dev_name,status,save_date,save_time)
values
<foreach collection="list" item="item" index="index" separator=",">
(#item.ebuser_no,#item.dev_id,#item.sotp_id,
#item.dev_name,#item.status,#item.save_date,#item.save_time)
</foreach>
</insert>
执行的sql是 insert into ......values(?,?,?),(?,?,?),(?,?,?)中间用逗号隔开的。这个是执行不通过的
。这种写法有什么问题吗?或者有没有其他批量插入的方法。
最佳答案是错的。
<insert id="importExcel" parameterType="com.domain" useGeneratedKeys="false">insert into a1_tmp
(org1_code,org1_name)
<foreach item = "item" collection="List" separator="UNION ALL">
select
#item.org1Code,
#item.org1Name
from dual
</foreach>
</insert>
Oracle批量插入数据时报字段无法识别错误
一、概述
oracle数据字段一般都是默认大写,当我们的sql语句中使用小写字段时,有时候可以正常插入;但是严格模式下会报字段无法识别的问题。
示例如下:
Caused by: java.sql.BatchUpdateException: ORA-00904: "TESTID": 标识符无效.
二、解决方法
对比Sql中的字段和数据表中的字段大小写是否一致,如果不一致,将oracle表中的字段全部改成大写的字段。
以上是关于使用foreach批量插入数据时报“SQL 命令未正确结束”的主要内容,如果未能解决你的问题,请参考以下文章