Oracle修改字段類型方法總結
2014-04-15 15:24 86913人閱讀 評論(6) 收藏 舉報
分類: Oracle(14)
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
有一個表名爲tb,字段段名爲name,數據類型nchar(20)。ide
一、假設字段數據爲空,則無論改成什麼字段類型,能夠直接執行:
alter table tb modify (name nvarchar2(20));it
二、假設字段有數據,則改成nvarchar2(20)能夠直接執行:
alter table tb modify (name nvarchar2(20));table
三、假設字段有數據,則改成varchar2(40)執行時會彈出:「ORA-01439:要更改數據類型,則要修改的列必須爲空」,這時要用下面方法來解決這個問題:class
/修改原字段名name爲name_tmp/
alter table tb rename column name to name_tmp;date
/增長一個和原字段名同名的字段name/
alter table tb add name varchar2(40);數據類型
/將原字段name_tmp數據更新到增長的字段name/
update tb set name=trim(name_tmp);方法
/更新完,刪除原字段name_tmp/
alter table tb drop column name_tmp;im
總結:
一、當字段沒有數據或者要修改的新類型和原類型兼容時,能夠直接modify修改。
二、當字段有數據並用要修改的新類型和原類型不兼容時,要間接新建字段來轉移。總結