1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

以下的文章主要描述的是Oracle修改字段类型实际操作方案,我们大家都知道Oracle修改字段类型的实际应用中是较为常见的,了解其实际的操作步骤还是有一定好处的,下面就是文章的具体内容的介绍。

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

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

altertabletb_testmodifypermilenumber(5,2);

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

altertabletb_testaddpermile_tempnumber(5,2) 
updatetb_testsetpermilepermile_temp=permile; 
altertabledropcolumnpermile; 
altertabletestrenamecolumnpermile_temptopermile;

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

以下方法是比较好的方法

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

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

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

以下是脚本:

altertabletb_testaddpermile_tempnumber; 
Add/modifycolumns 
altertabletb_testmodifyPERMILEnull; 
updatetb_testsetpermilepermile_temp=permile,permile=null; 
commit; 
altertabletb_testmodifypermilenumber(5,2); 
updatetb_testsetpermile=permile_temp,permile_temp=null; 
commit; 
altertabletb_testdropcolumnpermile_temp; 
altertabletb_testmodifyPERMILEnotnull; 
select*fromtb_test;

本文来源:1818IP

本文地址:https://www.1818ip.com/post/10991.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。