(Oracle):处于部分删除状态的列

(Oracle): Columns in partially dropped state

我使用Oracle 10g。几个月以来,关于 table:

我有以下错误
ORA-12986: columns in partially dropped state. Submit ALTER TABLE DROP COLUMNS CONTINUE

ALTER TABLE DROP COLUMNS CONTINUE 语句超时失败。

我没有此数据库的 DBA 权限。

我能做什么?删除并重新创建 table?

这是一个巨大的table,有数百万条记录。

我尝试了什么:

  1. 曾几何时,我做了以下命令来设置一些列 未使用状态:

    ALTER TABLE hr.admin_emp SET UNUSED (hiredate, mgr);
    

    然后,我给出了以下命令:

    ALTER TABLE hr.admin DROP UNUSED columns;
    

    系统挂了,操作时间过长,所以报错

    现在 table hr.admin 有两列处于部分删除状态, 既不能前进,也不能后退。

    我不明白为什么会这样。

  2. 我做了以下步骤,系统在第二阶段挂了:

    第一阶段 ============

    SQL> select * from user_unused_col_tabs;
    
    TABLE_NAME  COUNT
    ----------- ----------
    TEMP        1
    

    第二阶段 ============

    SQL> alter table temp drop unused columns;
    
    Table altered.
    

    第三阶段 =============

    SQL> select * from user_unused_col_tabs;
    
    no rows selected
    
  3. 检查点 500 选项

    我正在用以下语句重试:

    ALTER TABLE MYUSER.MYTABLE DROP COLUMNS CONTINUE CHECKPOINT 500;
    

    CHECKPOINT 500 选项对我有帮助吗?

我们已经连续发出了大约十二次命令:

ALTER TABLE MYUSER.MYTABLE DROP COLUMNS CONTINUE CHECKPOINT 250;

该语句每 48 小时自动终止,这是因为我们不得不多次启动它。

大约 500 小时的精心设计,以明确删除处于部分删除状态的列...!!

已确认 CHECKPOINT 250 生成 "commit",因此在下次启动同一命令时,您将从停止点开始。