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

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

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類(144)

          隨筆檔案(157)

          相冊

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 嘉善县| 玛纳斯县| 太谷县| 孟州市| 翁源县| 如皋市| 新平| 临澧县| 明星| 正镶白旗| 余江县| 阜阳市| 巴马| 前郭尔| 芒康县| 华宁县| 广安市| 高唐县| 定州市| 察哈| 昌平区| 红原县| 茌平县| 上犹县| 塘沽区| 黄梅县| 宜兴市| 兴义市| 宜阳县| 武威市| 饶河县| 西城区| 周宁县| 丹凤县| 克什克腾旗| 土默特左旗| 封丘县| 涟源市| 天柱县| 离岛区| 柳河县|