如果想修改表中一个列的属性,但表中存在数据执行
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;