oracle修改表结构

Posted 扰扰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle修改表结构相关的知识,希望对你有一定的参考价值。

语句:
alter table tableName rename column oldCName to newCName; -- 修改字段名
alter table tableName modify (cloumnName 数据类型); -- 修改数据类型

例如:
1、创建表:
  CREATE TABLE Student(
    id varchar2(32) primary key,
    name varchar2(8) not null,
    age number
  );
2、修改字段名:
  alter table Student rename name to StuName;
3、修改数据类型:
  alter table Student modify (id varchar2(64));

执行以下语句报"要修改数据类型,则要更改的列必须为空"
      alter table 表名 modify (目标字段 varchar2(100));

解决步骤:

第一步,在表中加一个临时字段
      alter table 表名 add 临时字段 目标字段原来的类型;

第二步,将目标字段的值付给临时字段,并将目标字段置空
      update 表名 set 临时字段=目标字段,目标字段=null;

第三步,修改目标类型
      alter table 表名  modify 目标字段 varchar2(100);

第四步,将临时字段的值付给目标字段,并将临时字段置空
      update 表名 set 目标字段=临时字段,临时字段=null;

最后一步,删除临时字段
      alter table 表名 drop column 临时字段;

以上是关于oracle修改表结构的主要内容,如果未能解决你的问题,请参考以下文章

Oracle表结构转换SqlSERVER表结构 脚本

Oracle数据库系列Oracle修改表结构中常用sql操作语句

oracle 修改表结构或修改视图时很慢,直接让PLSQL卡死,不知道是啥原因? 重启oracle 服务却又可以了!

Oracle 表空间详解

sqlalchemy怎么修改表结构

Oracle 判断表或字段是否存在新增/修改表结构可重复执行sql