Oracle修改字段類型方法

有一個表名爲tb,字段段名爲name,數據類型是blog,要調整成數據類型nvarchar2(1024)。

1、假設字段數據爲空,則不管改爲什麼字段類型,可以直接執行:
alter table tb modify (name nvarchar2(1024));

2、假設字段有數據,則改爲varchar2(1024)執行時會彈出:“ORA-01439:要更改數據類型,則要修改的列必須爲空”,這時要用下面方法來解決這個問題:

/修改原字段名name爲name_tmp/
alter table tb rename column name to name_tmp;

/增加一個和原字段名同名的字段name/
alter table tb add name varchar2(1024);

/將原字段name_tmp數據更新到增加的字段name/
update tb set name=trim(name_tmp);

/更新完,刪除原字段name_tmp/
alter table tb drop column name_tmp;

總結:
1、當字段沒有數據或者要修改的新類型和原類型兼容時,可以直接modify修改。
2、當字段有數據並用要修改的新類型和原類型不兼容時,要間接新建字段來轉移。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章