解决ORA-00933错误:Mybatis批量插入Oracle时遭遇错误"SQL command not properly ended"的解决方法
最编程
2024-01-10 16:13:53
...
首先声明代码写的没问题
源代码:
<insert id="insertUserStoriesFiles" parameterType="com.piao.domain.TbFile" >
insert into TB_FILE
(
"ID",
"FILE_NAME",
"NAS_FILE_NAME",
"DESCRIPTION",
"WHEN",
"SIZE",
"USER_STORIES_ID",
"ADD_USER",
"ADD_TIME",
"UPDATE_USER",
"UPDATE_TIME"
)
<foreach collection="list" item="file" separator="union all">
(
select
#{file.id},
#{file.fileName},
#{file.nasFileName},
#{file.description},
#{file.when},
#{file.size},
#{file.userStoriesId},
#{file.createBy},
#{file.createTime},
#{file.updateBy},
#{file.updateTime}
from dual
)
</foreach>
</insert>
解决方案:在插入标签后面加入useGeneratedKeys="false"即可。。
<insert id="insertUserStoriesFiles" parameterType="com.piao.domain.TbFile" useGeneratedKeys="false">
insert into TB_FILE
(
"ID",
"FILE_NAME",
"NAS_FILE_NAME",
"DESCRIPTION",
"WHEN",
"SIZE",
"USER_STORIES_ID",
"ADD_USER",
"ADD_TIME",
"UPDATE_USER",
"UPDATE_TIME"
)
<foreach collection="list" item="file" separator="union all">
(
select
#{file.id},
#{file.fileName},
#{file.nasFileName},
#{file.description},
#{file.when},
#{file.size},
#{file.userStoriesId},
#{file.createBy},
#{file.createTime},
#{file.updateBy},
#{file.updateTime}
from dual
)
</foreach>
</insert>