oracle 表中数据量很多,我用drop table 方式删除一个表,但中间终止了操作,问一下表中的数据会被删除一部分吗?对表有什么影响...

解决方案 »

  1.   

    数据会被全部删除,没有放在undo里面,也无法rollback
    如果空间压力不大,而且操作及时,可以flashback to before drop回来
      

  2.   

    楼主的意思是 操作终止了,就是说drop操作没有完成是吧 
    既然表没有drop掉 数据也不会丢失吧
    这应该是一个事务 
      

  3.   


    Drop 是DDL语句,作用于元数据sys@ORCL> create table t2 as select * from dba_source;Table created.sys@ORCL> insert into t2 select * from t2;292781 rows created.sys@ORCL> insert into t2 select * from t2;585562 rows created.sys@ORCL> insert into t2 select * from t2;1171124 rows created.sys@ORCL> select count(*) from t2;  --200多W数据  COUNT(*)
    ----------
       2342248sys@ORCL> drop table t2;   --这里我ctrl+c终止掉
    drop table t2
               *
    ERROR at line 1:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01013: user requested cancel of current operationsys@ORCL> select count(*) from t2;
    select count(*) from t2
                         *
    ERROR at line 1:
    ORA-00942: table or view does not exist
      

  4.   

    曾经做过一个上头的事情,直接drop table,一执行就发现中止了,所幸表都还在。。要是当时真出了啥问题想屎的心都有了。
      

  5.   

    只要这条命令成功发送给oracle,就肯定会被全部删除,不存在部分删除的情况。要么就中止的及时,但原因是这条指令没有发出,并不是oracle收到而没做删除的操作,只要收到这条指令,oracle内部就会执行删除。。