oracle怎么修改表字段類型

oracle中,可以使用“alter table”語句來修改表字段類型,該語句的作用就是改變原有表的結構,語法“alter table 表名 modify (字段名 新類型名);”語句。

oracle怎么修改表字段類型

本教程操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。

修改表字段數據類型

有一個表名為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;

3.添加字段以及刪除字段

????--添加新的字段  ????alter?table?lyz_emp?add(e_age?number(3));  ????--添加多個新的字段  ????alter?table?lyz_emp?add(  ????e_age?number(3),  ????e_age_tmp,varchar2(20));  ????--獲取表字段:  ????select?*  ????from?user_tab_columns  ????where?Table_Name='lyz_emp'  ????order?by?column_name  ????--刪除表中的字段  ????alter?table?lyz_emp?drop?column?e_age;

推薦教程:《Oracle教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享