Oracle在已创建的表中将Varchar()类型修改为clob类型以及插入insert CLOB

今天在做开发时遇到一个问题,接口传过来的数据太长超过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;  

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值