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