最近學(xué)習(xí)了Oracle修改字段類型方法,留做記錄。
有一個(gè)表名為tb,字段段名為name,數(shù)據(jù)類型nchar(20)。
1、假設(shè)字段數(shù)據(jù)為空,則不管改為什么字段類型,可以直接執(zhí)行:
alter table tb modify (name nvarchar2(20));
2、假設(shè)字段有數(shù)據(jù),則改為nvarchar2(20)可以直接執(zhí)行:
alter table tb modify (name nvarchar2(20));
3、假設(shè)字段有數(shù)據(jù),則改為varchar2(40)執(zhí)行時(shí)會(huì)彈出:“ORA-01439:要更改數(shù)據(jù)類型,則要修改的列必須為空”,這時(shí)要用下面方法來(lái)解決這個(gè)問(wèn)題:
/*修改原字段名name為name_tmp*/
alter table tb rename column name to name_tmp;
/*增加一個(gè)和原字段名同名的字段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;
總結(jié):
1、當(dāng)字段沒(méi)有數(shù)據(jù)或者要修改的新類型和原類型兼容時(shí),可以直接modify修改。
2、當(dāng)字段有數(shù)據(jù)并用要修改的新類型和原類型不兼容時(shí),要間接新建字段來(lái)轉(zhuǎn)移。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
標(biāo)簽:固原 和田 青島 承德 武漢 甘肅 周口 開(kāi)封
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解Oracle修改字段類型方法總結(jié)》,本文關(guān)鍵詞 詳解,Oracle,修改,字段,類型,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。