在oracle中,可以使用“alter table”語句來修改表字段類型,該語句的作用就是改變原有表的結構,語法“alter table 表名 modify (字段名 新類型名);”語句。
本教程操作環境: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
喜歡就支持一下吧
相關推薦