现场有需求,要求在线更改一张分区表的varchar2字段为clob,通过实验测试,可以采用之下方案:
--测试表(四个range分区,每个分区一条记录):
test(c1 int,c2 varchar2(100));
--添加列c3(为clob类型)
alter table test add c3 clob;
--copy列c2数据到列c3
update test set c3=c2;
--测试列c3数据(可以采取任何措施测试列c3数据,以确保列c3数据和列c2数据完全一致),例如:
select c1,c3 from test;
--在上步测试没问题的前提下,删除列c2
alter table test drop column c2;
--列更名:c3-->c2
alter table test rename column c3 to c2;