我的java天地

          oracle中字段類型修改

          oracle 修改字段類型
          2009-02-02 17:33

          今天公司因?yàn)闃I(yè)務(wù)需要,修要修改某個(gè)字段數(shù)據(jù)類型有number(5),變?yōu)閚umber(5,2)型

          要是沒有數(shù)據(jù)的話直接用以下語句即可

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

          但是有數(shù)據(jù)的話 就不能用上面方法了,

          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;

          這種方法會使列名發(fā)生變化,而且字段順序增加 有可能發(fā)生行遷移,對應(yīng)用程序會產(chǎn)生影響

          以下方法是比較好的方法

          不用使列名發(fā)生變化 也不會發(fā)生表遷移,但這個(gè)有個(gè)缺點(diǎn)是表要更新兩次

          如果數(shù)據(jù)量較大的話 產(chǎn)生的undo和redo更多 ,前提也是要停機(jī)做

          要是不停機(jī)的話 ,也可以采用在線重定義方式來做

          以下是腳本:

          alter table b add ccc varchar2(15);
          update b set ccc=cc;
          alter table b drop column cc;
          alter table b rename column ccc to cc;
          update b set cc='0000'||cc;
          select * from b;
          update b set cc='2'||cc;
          update b set cc=substr(cc,1,1)||substr(cc,-3);


          給表添加約束
          alter table parent
          add constraint test primary key(name)

          posted on 2009-04-12 13:57 tobyxiong 閱讀(1088) 評論(0)  編輯  收藏 所屬分類: DATABASES

          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(3)

          隨筆分類(144)

          隨筆檔案(157)

          相冊

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 扶沟县| 鲁山县| 萍乡市| 东阿县| 莱芜市| 白水县| 交城县| 武平县| 甘孜县| 巨野县| 麻城市| 婺源县| 泰宁县| 徐汇区| 松江区| 阿图什市| 镇沅| 正阳县| 新余市| 东城区| 宝兴县| 龙岩市| 西青区| 桂林市| 双城市| 巴南区| 砀山县| 溧阳市| 盐边县| 星子县| 安国市| 潼关县| 涞源县| 若尔盖县| 胶南市| 富平县| 普兰店市| 西林县| 红河县| 天水市| 井陉县|