oracle修改表字段从varchar2(4000)为clob
(原因varchar2(4000)不够用了)
1、临时表存数据
2、删原表数据,修改字段类型为long,才能再改为clob
3、导回数据
4、删除临时表
完整脚本,如下
//创建临时表bus_cqbzycxjdbgs_lsb结构与数据和bus_cqbzycxjdbgs一样
create table bus_cqbzycxjdbgs_lsb as select * from bus_cqbzycxjdbgs;
//删除原表bus_cqbzycxjdbgs数据,删除了才好改字段类型
delete from bus_cqbzycxjdbgs;
commit;
//修改原表要修改为clob类型的字段pqbgnr为long先
//不知道为什么网上查的必须先改为long才能再改成clob
alter table BUS_CQBZYCXJDBGS modify pqbgnr long;
//改为clob
alter table BUS_CQBZYCXJDBGS modify pqbgnr CLOB;
//把之前临时表的数据导回原表
insert into BUS_CQBZYCXJDBGS select * from bus_cqbzycxjdbgs_lsb;
//删除临时表
drop table bus_cqbzycxjdbgs_lsb;