0
点赞
收藏
分享

微信扫一扫

oracle中有clob字段报错,ORA-01461:仅能绑定要插入 LONG 列的 LONG 值


数据库中有一个字段设置为clob类型在插入数据库的时候遇到这样的错误:

ORA-01461:仅能绑定要插入 LONG 列的 LONG 值

解决办法:

之前我mybatis中的语句是这样写的(这是一个oracle的批量插入语句):

<insert id="addResults" parameterType="java.util.List" databaseId="Oracle">

INSERT INTO tableName("ID","SID","DETAIL")

<foreach collection="list" item="item" separator ="UNION ALL">
select
#{item.id, jdbcType=VARCHAR} ,#{item.sid, jdbcType=VARCHAR}
#{item.detail, jdbcType=CLOB}
from dual
</foreach>

</insert>

这样就会一直报错,但是改成下面这样的方式就没问题了:

<insert id="addResults" parameterType="java.util.List" databaseId="Oracle">
begin
<foreach collection="list" item="item" separator =";">
INSERT INTO tableName("ID","SID","DETAIL")
VALUES(
#{item.id, jdbcType=VARCHAR} ,#{item.sid, jdbcType=VARCHAR}
#{item.detail, jdbcType=CLOB}
)
</foreach>
;end;
</insert>

具体好像是因为用 from dual 的方式去查询如果是clob字段会自动转为long类型造成的。

举报

相关推荐

0 条评论