我的java天地

          oracle中字段類型修改

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

          今天公司因為業務需要,修要修改某個字段數據類型有number(5),變為number(5,2)型

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

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

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

          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;

          這種方法會使列名發生變化,而且字段順序增加 有可能發生行遷移,對應用程序會產生影響

          以下方法是比較好的方法

          不用使列名發生變化 也不會發生表遷移,但這個有個缺點是表要更新兩次

          如果數據量較大的話 產生的undo和redo更多 ,前提也是要停機做

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

          以下是腳本:

          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) 評論(0)  編輯  收藏 所屬分類: DATABASES

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

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類(144)

          隨筆檔案(157)

          相冊

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 新泰市| 黔西县| 古蔺县| 定兴县| 仪征市| 济阳县| 宜昌市| 都昌县| 讷河市| 米泉市| 黎平县| 密山市| 云林县| 册亨县| 金山区| 当雄县| 义乌市| 天峨县| 崇明县| 黄陵县| 建湖县| 桃江县| 玉林市| 澄城县| 庆城县| 温泉县| 柞水县| 剑川县| 稻城县| 富顺县| 鹿邑县| 新郑市| 慈溪市| 达拉特旗| 平陆县| 苗栗市| 咸宁市| 南汇区| 子洲县| 汝州市| 将乐县|