oracle中修改字段类型并设置字段不允许为空

在oracle修改user表字段name类型时遇到报错:“ORA-01439:要更改数据类型,则要修改的列必须为空”,是因为要修改字段的新类型和原来的类型不兼容。

1.当要修改的字段内容 为空 时:

alter table 表名 modify 字段名 要修改的类型 not null;

2.当要修改的字段内容 不为空 时:

要修改字段的新类型和原来的类型不兼容时,可以通过如下方式解决该问题:

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

alter table user rename column name to name_new ;

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

alter table user add(name varcher2(50));

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

update user set name = trim(name_new);

4、删除临时字段name_new;

alter table user drop column name_new ;

    原文作者:CrazyGood
    原文地址: https://blog.csdn.net/qq_42674061/article/details/110449425
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞