zoukankan      html  css  js  c++  java
  • oracle如何修改字段类型(oracle总体知识2)

    在一次做开发的时候,遇到需要将数据表的字段类型由number改成varchar,可是该字段又有值,

    用  alter table t-name modify cname newType;会报错。

    话说,当时在网上没找到合适的解决办法,很苦恼!

    今天在博客园看到解决这个问题的办法,很nice,分享!

    当要修改的字段有值的时候,不能更改字段类型

    两种解决办法:    

                 1、   > 新增一列,列类型与要修改的新类型一致;       

                         >将旧列的值赋给新列(需强制类型转换);       

                         > update tname set cname_new=cast(cname_old as 新类型)       

                         >删除旧列。    

    这种办法,改变了列在表里面的位置。

                2、      >新增一列,列类型与旧列相同;       

                          >将旧列的值赋给新列,旧列的值变为null;       

                          update tname set cname_new =cname_old;       

                         > 更改旧列的字段类型(此时为null,可以修改)       

                          alter table tname modify cname_old  newType;       

                         > 将新列的值赋给旧列;       

                          update tname set cname_old=cname_new;       

                          >删除新列。

    相关sql语句:

          

                          查看oracle版本:select * from v$version;

                          更新字段名:alter table 表名 rename column 旧列名 to 新列名;

                          新增字段:   alter table 表名 add 列名 列类型;

                          新增字段并赋值: alter table 表名 add 列名 列类型 default 默认值;      

                          删除字段:  alter table 表名 drop column 列名;

                          修改字段值:update 表名 set 列名=value where ...

                          修改字段类型: alter table 表名 modify 列名 类型;

    参考:http://www.cnblogs.com/david-zhang-index/archive/2012/04/10/2441015.html

  • 相关阅读:
    ****阿里云使用+快速运维总结(不断更新)
    Linux 标准目录结构
    linux awk命令
    反射型 DDoS 攻击的原理和防范措施
    容器平台选型的十大模式:Docker、DC/OS、K8S 谁与当先?
    谈谈数据库的跨机房容灾-网易云
    前端 支持 超大上G,多附件上传
    java 支持 超大上G,多附件上传讨论
    java 支持 超大上G,多附件上传分享
    java 支持 超大上G,多附件上传功能
  • 原文地址:https://www.cnblogs.com/dftencent/p/3881124.html
Copyright © 2011-2022 走看看