@H_301_0@最近学习了Oracle修改字段类型方法,留做记录。
sql;">
alter table tb modify (name nvarchar2(20));
@H_301_0@2、假设字段有数据,则改为nvarchar2(20)可以直接执行:sql;">
alter table tb modify (name nvarchar2(20));
@H_301_0@3、假设字段有数据,则改为varchar2(40)执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要用下面方法来解决这个问题:
@H_301_0@/*修改原字段名name为name_tmp*/sql;">
alter table tb rename column name to name_tmp;
@H_301_0@/*增加一个和原字段名同名的字段name*/sql;">
alter table tb add name varchar2(40);
@H_301_0@/*将原字段name_tmp数据更新到增加的字段name*/sql;">
update tb set name=trim(name_tmp);
@H_301_0@/*更新完,删除原字段name_tmp*/sql;">
alter table tb drop column name_tmp;
@H_301_0@总结:
@H_301_0@1、当字段没有数据或者要修改的新类型和原类型兼容时,可以直接modify修改。
@H_301_0@2、当字段有数据并用要修改的新类型和原类型不兼容时,要间接新建字段来转移。
@H_301_0@以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。