问题来源:我在执行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不需指定长度。