日期:2014-05-16  浏览次数:20352 次

要修改数据类型,则要更改的列必须为空

执行以下语句报"要修改数据类型,则要更改的列必须为空"
????? alter table 表名 modify (目标字段 varchar2(100));

解决步骤:

第一步,在表中加一个临时字段
????? alter table 表名 add 临时字段 目标字段原来的类型;

第二步,将目标字段的值付给临时字段,并将目标字段置空
????? update 表名 set 临时字段=目标字段,目标字段=null;

第三步,修改目标类型
????? alter table 表名? modify 目标字段 varchar2(100);

第四步,将临时字段的值付给目标字段,并将临时字段置空
????? update 表名 set 目标字段=临时字段,临时字段=null;

?

最后一步,删除临时字段
????? alter table 表名 drop column 临时字段;