Oracle修改number类型字段的小数位数

 需要注意的是,如下操作,是在表中的每条数据有唯一标识的情况下执行的,其他情况不建议;

  • 第一步:创建备份表market_index_bak,并将原表数据复制到备份表

create table market_index_bak as select * from market_index;

  • 第二步:将原表需要修改字段类型的值更新为null

update market_index MI set MI.TOTALPROFIT = null, MI.DAILYPROFIT = null;

  • 第三步:修改字段类型

alter table market_index modify TOTALPROFIT number(20,6);
alter table market_index modify DAILYPROFIT number(20,6);

  • 第四步:将第二步置为null的字段,恢复到原有的值

update market_index MI set MI.TOTALPROFIT = (
    select MB.TOTALPROFIT from market_index_bak  MB where MB.GROUPNAME = MI.GROUPNAME
    and MB.CREATETIME = MI.CREATETIME
 ),
  MI.DAILYPROFIT = (
    select MB.DAILYPROFIT from market_index_bak  MB where MB.GROUPNAME = MI.GROUPNAME
    and MB.CREATETIME = MI.CREATETIME
 );

  •  第五步:清空、删除备份表

truncate table  market_index_bak ;
drop table market_index_bak ;

你可能感兴趣的:(Oracle)