• 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

  • 相关阅读:
    在“安装”阶段发生异常。 System.Security.SecurityException: 未找到源,但未能
    [转]C# 实现Jwt bearer Authentication
    json序列化数据超出最大值(maxJsonLength)
    設計之家-教程
    Python Dom 的介绍和使用day1
    Python CSS day2
    回顾
    Python CSS day1
    Python HTML day2
    Python HTML day1
  • 原文地址:https://www.cnblogs.com/dftencent/p/3881124.html
Copyright © 2020-2023  润新知