plsql ORA-01439:要更改数据类型,则要修改的列必须为空

时间:2021-04-29 11:47:37   收藏:0   阅读:0

在plsql修改ASRS_TASKDETAIL_RV 表字段GRADE 类型时遇到报错:“ORA-01439:要更改数据类型,则要修改的列必须为空”。

是因为要修改字段的新类型和原来的类型不兼容。


--1、修改原字段名name为临时字段name_new;

alter table ASRS_TASKDETAIL_RV rename column GRADE to GRADE_new ;

--2、添加一个新字段名称和原来字段名相同,name,类型为要修改的新类型;VARCHAR2(30)

alter table ASRS_TASKDETAIL_RV add(GRADE INTEGER);

--3、把临时字段name_new的数据更新到新添加的字段name中;

update ASRS_TASKDETAIL_RV set GRADE = trim(GRADE_new);

--4、删除临时字段name_new;

alter table ASRS_TASKDETAIL_RV drop column GRADE_new ;

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!