熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

oracle修改字段類型的方法

2013-11-13 16:09:42  來源: Oracle 

  因為業務需要修要修改某個字段數據類型有number()變為number()型

  要是沒有數據的話直接用以下語句即可

  alter   table tb_test modify permile number();

  但是有數據的話 就不能用上面方法了

  alter table tb_test add permile_temp number()

  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=permilepermile=null;

  commit;

  alter table tb_test modify permile number();

  update tb_test set permile=permile_temppermile_temp=null;

  commit;

  alter table tb_test drop column permile_temp;

  alter table tb_test modify PERMILE not null;

  select * from tb_test ;


From:http://tw.wingwit.com/Article/program/Oracle/201311/17913.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.