Oracle 修改表列属性

时间:2022-03-16 07:17:09

如果想修改表中一个列的属性,但表中存在数据执行

alter table interface.tinvoice_sap modify type varchar2(50); 会提示错误:

ORA-01439: 要更改数据类型,则要修改的列必须为空(empty)

而你不想将列的数据清空,这种情况下修改列的属性,需要借助第三变量:

alter table interface.tinvoice_sap add intrrate_b NUMBER(2);
update interface.tinvoice_sap set intrrate_b=type;
update interface.tinvoice_sap set type = null;

alter table interface.tinvoice_sap modify type varchar2(50);
update interface.tinvoice_sap set type=intrrate_b;
alter table interface.tinvoice_sap drop column intrrate_b;