ORA-01440: column to be modified must be empty (修改列类型时报错:要修改的列必须为空)

  • 创建新列:在表中添加一个新的列,然后将数据迁移到新列,最后删除旧列并重命名新列。

    ALTER TABLE "MESDB"."NC_WORKORDER"
    ADD ("RECEIPT_QUANTITY_NEW" NUMBER(10,6));

    -- 将数据迁移到新列
    UPDATE "MESDB"."NC_WORKORDER"
    SET "RECEIPT_QUANTITY_NEW" = "RECEIPT_QUANTITY";

    -- 删除旧列
    ALTER TABLE "MESDB"."NC_WORKORDER"
    DROP COLUMN "RECEIPT_QUANTITY";

    -- 重命名新列为旧列名
    ALTER TABLE "MESDB"."NC_WORKORDER"
    RENAME COLUMN "RECEIPT_QUANTITY_NEW" TO "RECEIPT_QUANTITY";
  • 使用临时表:创建一个临时表,按新的精度和刻度复制数据,然后替换原表。

posted @ 2024-09-19 19:10  不知名路人!  阅读(252)  评论(0)    收藏  举报