有乙個表名為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修改字段型別方法
有乙個表名為tb,欄位段名為name,資料型別是blog,要調整成資料型別nvarchar2 1024 1 假設字段資料為空,則不管改為什麼字段型別,可以直接執行 alter table tb modify name nvarchar2 1024 2 假設欄位有資料,則改為varchar2 1024...
oracle 修改字段型別的方法
因為業務需要,修要修改某個字段資料型別有number 5 變為number 5,2 型 要是沒有資料的話直接用以下語句即可 alter table tb test modify permile number 5,2 但是有資料的話 就不能用上面方法了,alter table tb test add ...
oracle 修改字段型別的方法
要是沒有資料的話直接用以下語句即可 alter table tb test modify permile number 5,2 但是有資料的話 就不能用上面方法了,alter table tb test add permile temp number 5,2 update tb test set p...