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

        项目实际运行中,偶尔会遇到表字段类型定义不合理的现象,此时不得不考虑编写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字段存在其他约束,请务必重新创建约束。                                     


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值