我的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ù)的話直接用以下語(yǔ)句即可

          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;

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

          以下方法是比較好的方法

          不用使列名發(fā)生變化 也不會(huì)發(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 閱讀(1081) 評(píng)論(0)  編輯  收藏 所屬分類: DATABASES

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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(3)

          隨筆分類(144)

          隨筆檔案(157)

          相冊(cè)

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 宜城市| 红安县| 比如县| 安新县| 伊春市| 肇州县| 宝应县| 临沂市| 新野县| 武定县| 马山县| 屏东市| 邢台市| 五台县| 绥芬河市| 鞍山市| 葵青区| 镇雄县| 曲阜市| 阜新市| 大悟县| 保山市| 金门县| 盐山县| 惠安县| 略阳县| 临汾市| 株洲县| 若尔盖县| 无锡市| 商丘市| 鲁甸县| 砚山县| 黄陵县| 澳门| 日照市| 太湖县| 盘锦市| 遵化市| 旅游| 芦山县|