变更字段长度

正式系统报了个bug,具体情况就是在保存一段数据的时候,保存不上,我们在测试走的没发现异常,然后和用户沟通,把他要保存的那段数据拿过来。

复现了这个bug。具体原因就是要保存的这个数据的字段设计长度为400,一直也没人填太长的信息。就一直没事,结果这一次这个用户填写的数据太

长了,超过了限制长度,所以就报错了。这个是个例,属于偶然情况,但是还是要避免这个情况的发生。

直接想到的解决办法就是增加字段的长度。下面就是SQL

---新增一列copy,将原来申诉理由这一列复制过去,
alter table sec_comments add COMPLAINTREASON_copy varchar2(400);

update  sec_comments s set s.COMPLAINTREASON_copy =  s.COMPLAINTREASON  where s.COMPLAINTREASON is not null;

---修改原来申诉理由这一列的字段长度,
        -- 删除申诉理由这一列
alter table sec_comments drop column COMPLAINTREASON;         

        -- 新增申诉理由这一列。将长度设置为2000
alter table sec_comments add COMPLAINTREASON varchar2(2000);        
                
---将copy这一列的内容复制到新增的申诉理由这一列。
update sec_comments s set s.COMPLAINTREASON =  s.COMPLAINTREASON_copy where s.COMPLAINTREASON_copy is not null;

----删除copy列
alter table sec_comments drop column COMPLAINTREASON_copy;
原文地址:https://www.cnblogs.com/anningkang/p/10916806.html