在oracle中,可以利用「ALTER TABLE MODIFY」語句來轉換欄位類型,語法為「ALTER TABLE table_name MODIFY(欄位名稱 新資料類型)」。
本教學操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。
在oracle中,可以利用「ALTER TABLE MODIFY」語句來變更現有資料列的定義,例如修改欄位類型。
語法格式:
ALTER TABLE table_name MODIFY(字段名称 新数据类型)
例如:有一個表名為tb,字段段名為name,資料類型nchar(20)。
1、假設欄位資料為空,則不管改為什麼欄位類型,可以直接執行:
alter table tb modify (name nvarchar2(20));
2、假設欄位有數據,則改為nvarchar2(20)可以直接執行:
alter table tb modify (name nvarchar2(20));
3、假設字段有數據,則改為varchar2(40)執行時會彈出:“ORA-01439:要更改數據類型,則要修改的列必須為空”,這時要用下面方法來解決這個問題:
/*修改原字段名name为name_tmp*/ alter table tb rename column name to name_tmp; /*增加一个和原字段名同名的字段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;
總結:
1、當欄位沒有資料或要修改的新型別和原型別相容時,可以直接modify修改。
2、當欄位有資料並用要修改的新型別和原型別不相容時,要間接新建欄位來轉移。
推薦教學:《Oracle教學》
以上是oracle怎麼轉換字段類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!