第一次使用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"
然后,然后就可以了!!!