您的位置:首页 > 其它

mybatis批量插入clob,ORA-01461-仅能绑定要插入LONG列的LONG值

2017-09-08 16:51 726 查看
今天用MyBatis批量插入数据到Oracle中,其中有字段的类型为Clob,出现错误:ORA-01461:仅能绑定要插入LONG列的LONG值 
Xml中SQL语句如下:

<insert id="batchInsert" parameterType="java.util.List">
insert into tableName (ID, LAST_MODIFIED, content)
<foreach collection="list" item="item" index="index" close=")" open="(" separator="union">
select #{item.id},to_date(#{item.lastModified},'YYYY-MM-DD HH24:MI:SS') ,#{item.content} from dual
</foreach>
</insert>
其中content字段在数据库中是Clob类型。

在网上查了很久,有可能问题是出现在当从dual中取数据时,会将clob对象的字段转为Long型

最后的解决方法用到了Begin和end语法
<insert id="batchInsert" parameterType="java.util.List">
begin
<foreach collection="list" item="item" index="index" separator=";">
insert into tableName(ID, LAST_MODIFIED, content)
values( #{item.id},to_date(#{item.lastModified},'YYYY-MM-DD HH24:MI:SS'),#{item.content})
</foreach>
;end;
</insert>
成功插入了多条包含Clob的数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐