Oracle修改字段型別

2021-10-09 06:05:08 字數 777 閱讀 7723

gps平台、**建設、軟體開發、系統運維,找森大網路科技!

來自森大科技官方部落格

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、當字段有資料並用要修改的新型別和原型別不相容時,要間接新建欄位來轉移。

gps平台、**建設、軟體開發、系統運維,找森大網路科技!

來自森大科技官方部落格

Oracle修改字段型別

有乙個表名為tb,欄位段名為name,資料型別nchar 20 1 假設字段資料為空,則不管改為什麼字段型別,可以直接執行 alter table tb modify name nvarchar2 20 2 假設欄位有資料,則改為nvarchar2 20 可以直接執行 alter table tb ...

Oracle 修改字段型別

1,如果只是單純的把字段改大,比如numeric 16,2 numeric 16,4 可直接 alter table 表名 modify 欄位名 numeric 16,4 2,由於需求變動,現要將乙個型別number 8,2 的字段型別改為 char。大體思路如下 將要更改型別的欄位名改名以備份,然...

Oracle修改字段型別

1 假設字段資料為空,則不管改為什麼字段型別,可以直接執行 alter table tb modify name nvarchar2 20 2 假設欄位有資料,則改為nvarchar2 20 可以直接執行 alter table tb modify name nvarchar2 20 3 假設欄位有...