ORA-38301: can not perform DDLDML over objects in Recycle Bin

    技术2022-05-20  41

    同事问删除一张名字很怪的表,怎么删除不掉。

    错误信息是ORA-38301: can not perform DDL/DML over objects in Recycle Bin

     

    一看他的sql原来是在drop 一张回收站中的表,对回收站中的表只能purge ,不能drop

     

     

    SQL> DROP TABLE t_drop;

    Table dropped

     

    SQL> SELECT r.object_name,r.original_name,r.operation,r.droptime FROM user_recyclebin r;

    OBJECT_NAME                    ORIGINAL_NAME             OPERATION    DROPTIME------------------------------ --------------------------------    ---------          -------------------BIN$oPOJAsoYIArgQwoBAQIgCg==$0 T_DROP           DROP           2011-04-15:18:30:48

     

     

    SQL> drop table "BIN$oPOJAsoYIArgQwoBAQIgCg==$0";

    drop table "BIN$oPOJAsoYIArgQwoBAQIgCg==$0"

    ORA-38301: can not perform DDL/DML over objects in Recycle Bin

     

    SQL> purge table "BIN$oPOJAsoYIArgQwoBAQIgCg==$0";

    Done

     

    SQL> SELECT r.object_name,r.original_name,r.operation,r.droptime FROM user_recyclebin r;

    OBJECT_NAME                    ORIGINAL_NAME                 OPERATION            DROPTIME------------------------------        -------------------------------- --------------           -------------------

     

    -- 也可以purge表的原始名称。

    SQL> purge table  T_DROP     ;

     

     

    如果不想永久删除表,不想放在回收站中可以在删除的时候加purge参数。

     

    SQL>drop table &table_name  purge;

     


    最新回复(0)