在oracle修改user表字段name類型時遇到報錯:“ORA-01439:要更改數據類型,則要修改的列必須為空”,是因為要修改字段的新類型和原來的類型不兼容。
如果要修改的字段數據為空時,則不會報這種類型的錯誤,可以進行字段類型的修改。
alter table user modify (name varchar2(20));
要修改字段的新類型和原來的類型不兼容時,可以通過如下方式解決該問題:
1、修改原字段名name為臨時字段name_new;
alter table user rename column name to name_new ;
2、添加一個新字段名稱和原來字段名相同,name,類型為要修改的新類型;
alter table user add(name varcher2(50));
3、把臨時字段name_new的數據更新到新添加的字段name中;
update user set name = trim(name_new);
4、刪除臨時字段name_new;
alter table user drop column name_new ;