在项目过程中 ;我们经常会遇到 修改数据库字段 类型的 情况;
假设 有个 表: check_org(机构表);其中 字段 ORG_LINKER_PHONE(机构联系人) ;要求:把字段 ORG_LINKER_PHONE 从 number 类型改成Varchar2 的类型;
如果字段中不存在在数据:alter table check_org modify (ORG_LINKER_PHONE varchar2(20));
如果字段中有数据存在:直接修改是回报如下错误;
ORA-01439:要更改数据类型,则要修改的列必须为空;
这是 我们可以:
先修改要修改字段的名称ORG_LINKER_PHONE 为ORG_LINKER_PHONE1 ;
alter table check_org rename column ORG_LINKER_PHONE to ORG_LINKER_PHONE1
在增加一个与要修改的字段同名的字段 ORG_LINKER_PHONE ;其类型为要修改的 类型 varchar2(30);
alter table check_org add ORG_LINKER_PHONE varchar2(30)
把就字段中的数据 跟新 到 新添加的字段中;
update check_org set ORG_LINKER_PHONE=trim(ORG_LINKER_PHONE1)
删除旧字段 ORG_LINKER_PHONE1;
alter table check_org drop column ORG_LINKER_PHONE1