问题描述:oracle数据库报错:仅能绑定long列的long值
需求描述:将原本的文本内容维护成富文本。数据库中原本定义的是varchar2类型。存储内容加了一些html标签就导致大了许多。
问题分析:插入的是字符串。 数据库定义的是varchar2。当长度超过2000--4000(最大值)之间的时候,oracle会自动将该字段值转为long型。
解决办法:因long类型已经被标为 过时。存储对象是一个富文本。
此处提一下clob和blob。一般常用 clob存储大文本。blob存储图片、视频二进制。大小限制都是4G。
因此将数据库类型改为clob。改为clob类型时。oracle报错。无法转换为clob类型。
解决办法:
将数据库字段改为clob类型。
-- 1 新增临时字段temp
alter table 表名 add temp clob;
-- 2 将要修改为clob类型的 var字段(改成自己的) 赋值给temp
update 表名 set temp = var;
-- 3 删除var字段
alter table 表名 drop column var;
-- 4 将临时字段temp重命名为 var
alter table 表名 rename column temp to var;