做项目中经常碰到数据库改字段问题,给自己做个记录,下次直接可以拿来用了。Oracle 有些字段直接修改会报错ORA-22858: invalid alteration of datatype。不允许修改。不允许修改怎么办呢。。总不能把表干掉重新建字段吧。这在生产肯定行不通。可以先建个新字段以clob类型,然后把要改字段类型数据备份到新的字段中,然后删除掉旧的字段,再把新的字段列名改成旧的字段就完成了更改。下面是代码:
--增加大字段项a_copy
alter table t add a_copy CLOB;
--将需要改成大字段的原字段a内容copy到大字段a_copy中
update t set a_copy= a;
--删除原有字段a
alter table t DROP COLUMN a;
--将大字段名改成原字段名
alter table t RENAME COLUMN a_copy TO a;
网友评论