Oracle中如何修改已存在數據的列名的數據類型


在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM