Oracle修改字段型別

2021-10-09 06:26:05 字數 667 閱讀 4544

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修改字段型別

有乙個表名為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修改字段型別

gps平台 建設 軟體開發 系統運維,找森大網路科技!來自森大科技官方部落格 1 假設字段資料為空,則不管改為什麼字段型別,可以直接執行 alter table tb modify name nvarchar2 20 2 假設欄位有資料,則改為nvarchar2 20 可以直接執行 alter ta...