在oracle中,如果已经存在的数据的某些列,假如要更换字段类型的话,有的时候会出现
错误:ORA-01439: column to be modified must be empty to change datatype
解决方法:把列数据复制出来,列置空后修改再恢复数据
例如:
alter table tablename add tempcolumn varchar2(100);--添加临时字段
tempcolumn update tablename set tempcolumn=colname;--将原字段数据复制到临时字段中
update tablename set colname=null;--将原字段数据清空
alter table tablename modify colname xxx ;--修改原字段类型为xxx
update tablename set colname= tempcolumn;--将临时字段数据复制到修改后的原字段
alter table tablename drop column tempcolumn;--删除临时字段