今天在做开发时遇到一个问题,接口传过来的数据太长超过varchar()的4000字节,最后网上搜索得到解决方法,特记录一下。
--增加大字段项clob
alter table 表名 add 新字段名 clob;
--将旧字段的内容复制到大字段
update 表名 set 新字段名=旧字段名;
--删除旧字段
alter table 表名 drop column 旧字段名;
--将大字段改为旧字段名字
alter table bl_changeCompany rename column 新字段名 to 旧字段名;
当我高高兴兴想把数据插入的时候突然报错字符串太长,原来insert 中有默认varchar()类型,导致数据插入不进去,解决方法为
DECLARE
clobValue 表名.字段名 类型(clob);
BEGIN
clobValue := '存储的数据'; --字段内容
insert into 表名(字段1,字段2,字段3,字段4,...,content,字段5,字段6) values('1','2','3','4',...,clobValue,'5','6');
UPDATE 表名T SET T.content = clobValue WHERE 字段1=字段1的值;
COMMIT;
END;