您的位置:首页 > 其它

项目经验--orace 字段类型变更

2016-05-21 21:21 239 查看
        项目实际运行中,偶尔会遇到表字段类型定义不合理的现象,此时不得不考虑编写sql脚本,修改表中的字段类型。字段类型定义不合理的原因有各种,此处不做讨论,仅总结下如何实现字段类型的变更。

     

        分析,以表t_userinfo的id为例,表中id类型为number(10),当前出于某种需要,id必须变更为varchar2(100)类型:

     【表中该列不存在数据】

                   可以直接执行:altet table t_userinfo modify id varchar2(100);

     【表中该列存在数据】

                  若直接执行1)中的sql,则会提示异常ora-01439:要更改数据类型,则必须要修改的列为空。

                   此时,建议按一下步骤去变更字段类型:

                          1)新增一个varchar2(100)的字段,id_new;

                          2)将表中id字段的值,update到id_new字段

                                PS:若数据量较大,则请分批更新,分批commit,否则sql会存在性能问题;

                          3)drop掉原来的id字段;

                          4)将id_new字段重命名为id;

                          5)如果id字段存在其他约束,请务必重新创建约束。                                     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: