博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle 修改字段类型方法
阅读量:5789 次
发布时间:2019-06-18

本文共 978 字,大约阅读时间需要 3 分钟。

因为业务需要,修要修改某个字段数据类型有number(5),变为number(5,2)型

  要是没有数据的话直接用以下语句即可

  alter   table tb_test modify permile number(5,2);

  但是有数据的话 就不能用上面方法了,

  alter table tb_test add permile_temp number(5,2)

  update tb_test set permile_temp=permile;

  alter table drop column permile;

  alter table test rename column permile_temp to permile;

  这种方法会使列名发生变化,而且字段顺序增加 有可能发生行迁移,对应用程序会产生影响

  以下方法是比较好的方法

  不用使列名发生变化 也不会发生表迁移,但这个有个缺点是表要更新两次

  如果数据量较大的话 产生的undo和redo更多 ,前提也是要停机做

  要是不停机的话 ,也可以采用在线重定义方式来做

  以下是脚本:

  alter table tb_test add permile_temp number;

  Add/modify columns

  alter table tb_test modify PERMILE null;

  update tb_test set permile_temp=permile,permile=null;

  commit;

  alter table tb_test modify permile number(5,2);

  update tb_test set permile=permile_temp,permile_temp=null;

  commit;

  alter table tb_test drop column permile_temp;

  alter table tb_test modify PERMILE not null;

  select * from tb_test ;

转载于:https://www.cnblogs.com/dogxuefeng/archive/2012/10/18/2729782.html

你可能感兴趣的文章
【SQL】查询数据库中某个字段有重复值出现的信息
查看>>
mysql 行转列 列转行
查看>>
[Oracle]如何在Oracle中设置Event
查看>>
top.location.href和localtion.href有什么不同
查看>>
02-创建hibernate工程
查看>>
Open Graph Protocol(开放内容协议)
查看>>
Ubuntu18.04中配置QT5.11开发环境
查看>>
Exception的妙用
查看>>
基于浏览器的开源“管理+开发”工具,Pivotal MySQL*Web正式上线!
查看>>
JavaScript(五):变量的作用域
查看>>
知识图谱在互联网金融中的应用
查看>>
MySQL 到底能不能放到 Docker 里跑?
查看>>
wpf 自定义窗口,最大化时覆盖任务栏解决方案
查看>>
【docker】关于docker 中 镜像、容器的关系理解
查看>>
information_schema系列五(表,触发器,视图,存储过程和函数)
查看>>
瓜子二手车的谎言!
查看>>
[转]使用Git Submodule管理子模块
查看>>
DICOM简介
查看>>
Scrum之 Sprint计划会议
查看>>
List<T> to DataTable
查看>>