做项目中经常碰到数据库改字段问题,给自己做个记录,下次直接可以拿来用了。Oracle 有些字段直接修改会报错ORA-22858: invalid alteration of datatype。不允许修改。不允许修改怎么办呢。。总不能把表干掉重新建字段吧。这在生产肯定行不通。可以先建个新字段以clob类型,然后把要改字段类型数据备份到新的字段中,然后删除掉旧的字段,再把新的字段列名改成旧的字段就完成了更改。下面是代码:
--增加大字段项
alter table t add a_copy CLOB;
--将需要改成大字段的项内容copy到大字段中
update t set a_copy= a;
--删除原有字段
alter table t DROP COLUMN a;
--将大字段名改成原字段名
alter table t RENAME COLUMN a_copy TO a;
大功告成。
本文介绍了一种在Oracle数据库中安全地修改字段类型的实用方法,通过创建临时字段进行数据迁移,避免了ORA-22858错误,适用于生产环境中的字段类型变更。
2764

被折叠的 条评论
为什么被折叠?



