最近學習了Oracle修改字段類型方法,留做記錄。
有一個表名為tb,字段段名為name,數(shù)據(jù)類型nchar(20)。
1、假設字段數(shù)據(jù)為空,則不管改為什么字段類型,可以直接執(zhí)行:
alter table tb modify (name nvarchar2(20));
2、假設字段有數(shù)據(jù),則改為nvarchar2(20)可以直接執(zhí)行:
alter table tb modify (name nvarchar2(20));
3、假設字段有數(shù)據(jù),則改為varchar2(40)執(zhí)行時會彈出:“ORA-01439:要更改數(shù)據(jù)類型,則要修改的列必須為空”,這時要用下面方法來解決這個問題:
/*修改原字段名name為name_tmp*/
alter table tb rename column name to name_tmp;
/*增加一個和原字段名同名的字段name*/
alter table tb add name varchar2(40);
/*將原字段name_tmp數(shù)據(jù)更新到增加的字段name*/
update tb set name=trim(name_tmp);
/*更新完,刪除原字段name_tmp*/
alter table tb drop column name_tmp;
總結:
1、當字段沒有數(shù)據(jù)或者要修改的新類型和原類型兼容時,可以直接modify修改。
2、當字段有數(shù)據(jù)并用要修改的新類型和原類型不兼容時,要間接新建字段來轉移。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 關于oracle中clob字段查詢慢的問題及解決方法
- PHP處理Oracle的CLOB實例
- 向Oracle數(shù)據(jù)庫的CLOB屬性插入數(shù)據(jù)報字符串過長錯誤
- 解析jdbc處理oracle的clob字段的詳解
- oracle數(shù)據(jù)庫中如何處理clob字段方法介紹
- Oracle 插入超4000字節(jié)的CLOB字段的處理方法
- Oracle的CLOB大數(shù)據(jù)字段類型操作方法