Oracle修改相關(guān)字段的幾種常用方法
以下的文章主要是介紹Oracle修改字段的幾種常用類(lèi)型的以及實(shí)際操作方法,因?yàn)闃I(yè)務(wù)上的需要,要對(duì)Oracle字段進(jìn)行一些修改,其數(shù)據(jù)類(lèi)型為number(5),使其變?yōu)閚umber(5,2)型 ,要是沒(méi)有數(shù)據(jù)的話(huà)直接用以下語(yǔ)句即可
- alter table tb_test modify permile number(5,2);
 
但是有數(shù)據(jù)的話(huà) 就不能用上面方法了,
- alter table tb_test add permile_temp number(5,2)
 - update tb_test set permilepermile_temp=permile;
 - alter table drop column permile;
 - alter table test rename column permile_temp to permile;
 
這種方法會(huì)使列名發(fā)生變化,而且字段順序增加 有可能發(fā)生行遷移,對(duì)應(yīng)用程序會(huì)產(chǎn)生影響
以下方法是比較好的方法
不用使列名發(fā)生變化 也不會(huì)發(fā)生表遷移,但這個(gè)有個(gè)缺點(diǎn)是表要更新兩次
如果數(shù)據(jù)量較大的話(huà) 產(chǎn)生的undo和redo更多 ,前提也是要停機(jī)做
要是不停機(jī)的話(huà) ,也可以采用在線(xiàn)重定義方式來(lái)做
以下是腳本:
- alter table tb_test add permile_temp number;
 - Add/modify columns
 - alter table tb_test modify PERMILE null;
 - update tb_test set permilepermile_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 ;
 
上述的相關(guān)內(nèi)容就是對(duì)Oracle修改字段類(lèi)型的方法的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。
【編輯推薦】















 
 
 


 
 
 
 