java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值

时间:2022-08-09 21:09:15

问题来源:我在执行sql生成json并存入数据库是报的错。

原因:存json的字段我定义其类型为varchar2。

分析:这个异常是指,用户向数据库执行插入数据操作时,某条数据的某个字段值过长,如果是varchar2类型的,当长度超过2000,--4000(最大值)之间的时候,oracle会自动将该字段值转为long型的,然后,插入操作失败。解决办法是:将此字段的类型改为clob或者blob类型;

但是将oracle数据库表中的varchar2类型直接改成clob类型会失败,解决办法如下:new 一个Sql view,执行下列代码:

alter table A modify column_a long;

alter table A modify column_a clob;

在进行此操作之前需要清空表中的数据,请提前备份数据,修改完成后,将数据导入即可。

注:clob不需指定长度。