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

时间:2015-07-22 09:56:46

标签: oracle oracle10g ddl alter-table

我使用的是Oracle 10g。几个月以来,我对表有以下错误:

ORA-12986: columns in partially dropped state. Submit ALTER TABLE DROP COLUMNS CONTINUE

ALTER TABLE DROP COLUMNS CONTINUE语句因加班而失败。

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

我该怎么办?掉落&重新创建表?

这是一张拥有数百万条记录的大表。

我尝试了什么:

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

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

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

    ALTER TABLE hr.admin DROP UNUSED columns;
    

    系统挂起,操作太长,故障。

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

    我不明白为什么会这样。

  2. 我做了以下步骤,系统在STAGE TWO挂起:

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

    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. Checkpoint 500选项

    我正在尝试以下声明:

    ALTER TABLE MYUSER.MYTABLE DROP COLUMNS CONTINUE CHECKPOINT 500;
    

    CHECKPOINT 500选项可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我们连续十二次给出命令:

ALTER TABLE MYUSER.MYTABLE DROP COLUMNS CONTINUE CHECKPOINT 250;

该声明每48小时自动杀死一次,这是因为我们不得不多次启动它。

大约500个小时的精心设计,以确保将列放在部分掉落状态...... !!

确认CHECKPOINT 250进行“提交”,因此在下次启动同一命令时,您将从停止点开始。