第一次使用oracle数据库,在通过Navicat premium工具修改字段类型时,发现报“ORA-01439: column to be modified must be empty to change datatype ”的错误,百度后才发现oracle修改字段类型比较麻烦。
总体修改过程可分为以下几个步骤:
(1)新增一个临时字段
alter table "athletes_age" add "tmp_col" VARCHAR2(255); //tmp_col为新增的临时字段
(2)将要修改的字段数据赋予新增的临时字段
update "athletes_age" set "tmp_col" = "field3"; //field3为要修改的字段
(3)将要修改的字段置空
update "athletes_age" set "field3" = null;
(4)修改字段类型
alter table "athletes_age" modify("fields3" Number(8));
(5)将临时字段的值再赋回给修改字段
update "athletes_age" set "field3" = "tmp_col";
(6)删除掉临时字段
alter table "athletes_age" drop column "tmp_col"
然后,然后就可以了!!!