在oracle中,如何修改已存在數據列名的數據類型
一般人直接在表結構設計這里修改,這里只適合修改列沒有數據,可修改
那么,如何這個列是有數據,是怎么修改的呢?
直接修改會Oracle錯誤
第一步:先創建一個新列名,名字跟修改的名稱一樣(多了個1),數據類型改成要修改的(如varchar(100))
第二步:將原列名的數據備份到新列名中,執行賦值操作
--將舊列名的數據遷到新列名--- update TMS_DELIVERY_ITEM_BOX set ITEM_BILL1=ITEM_BILL
第三步:找到tables下columns下的舊列名,刪除舊列名
第四步:找到table下columns下的新列名,重命名(去掉1)
第五步:檢查數據表列名的數據和數據類型(查看)
也可以單純用SQL語句進行修改,如
/*修改原字段名name為name_tmp*/ alter table Dxc_Receive_Notice rename column ORDERNUM to ORDERNUM_TEMP; /*增加一個和原字段名同名的字段name*/ alter table Dxc_Receive_Notice add ORDERNUM NUMBER(19,5); /*將原字段name_tmp數據更新到增加的字段name*/ update Dxc_Receive_Notice set ORDERNUM=trim(ORDERNUM_TEMP); /*更新完,刪除原字段name_tmp*/ alter table tb drop column name_tmp;
參考網址: https://www.csdn.net/gather_28/MtTaQgwsNDg1Mi1ibG9n.html