詳解Oracle修改字段類型方法總結(jié)
最近學(xué)習(xí)了Oracle修改字段類型方法,留做記錄。
有一個表名為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í)行時會彈出:“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;
總結(jié):
1、當(dāng)字段沒有數(shù)據(jù)或者要修改的新類型和原類型兼容時,可以直接modify修改。
2、當(dāng)字段有數(shù)據(jù)并用要修改的新類型和原類型不兼容時,要間接新建字段來轉(zhuǎn)移。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
oracle求字符串長度函數(shù)length()和hengthb()簡介
這篇文章主要介紹了Oracle求字符串長度函數(shù)length()和hengthb()簡介,具有一定參考價值,需要的朋友可以了解下。2017-09-09Oracle查詢語句中rownum與rowid的不同之處分析
這篇文章主要介紹了Oracle查詢語句中rownum與rowid的不同之處分析,需要的朋友可以參考下2014-07-07Oracle的RBO和CBO詳細(xì)介紹和優(yōu)化模式設(shè)置方法
這篇文章主要介紹了Oracle的RBO和CBO詳細(xì)介紹和優(yōu)化模式設(shè)置方法,RBO即基于規(guī)則的優(yōu)化方式(Rule-Based Optimization),CBO即基于代價的優(yōu)化方式(Cost-Based Optimization),需要的朋友可以參考下2014-07-07Oracle解鎖表、包、用戶、殺會話、停job的方法實(shí)現(xiàn)
本文主要介紹了Oracle解鎖表、包、用戶、殺會話、停job的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12CentOS系統(tǒng)上安裝配置Oracle數(shù)據(jù)庫的詳細(xì)教程
這篇文章主要介紹了CentOS系統(tǒng)上安裝配置Oracle數(shù)據(jù)庫的詳細(xì)教程,包括安裝過程中一些常見錯誤問題的解決,需要的朋友可以參考下2016-03-03如何解決Oracle EBS R12 - 以Excel查看輸出格式為“文本”的請求時亂碼
這篇文章主要介紹了如何解決Oracle EBS R12 - 以Excel查看輸出格式為“文本”的請求時亂碼的相關(guān)資料,需要的朋友可以參考下2015-09-09oracle與gbase8s遷移數(shù)據(jù)類型對照以及舉例說明
gbase8s是一個高性能的分布式關(guān)系型數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于oracle與gbase8s遷移數(shù)據(jù)類型對照以及舉例說明的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12