在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