我新建一个用户A,然后在A用户下新建了一个TEST_A的表,然后drop掉此表,然后再次新建TEST_A表,这时执行select * from user_objects where object_type='TABLE',这时会查出2调记录,第一条类似乱码一样,第二条是TEST_A表,这是为什么呢?
是不是DROP的时候,数据库在系统里仍然存着这个被删除的表呢?

解决方案 »

  1.   

    oracle 的 flashback特性
    执行drop操作时,oracle并不是真正的删除了表,而是把它放入到了回收站里,
    对一个表的删除其实就是简单的重命名操作。
      

  2.   

    用的 10G  用 pl/sql developer 删除的?
    貌似和闪回 flashback 有点什么关系
      

  3.   

    10G的和PL/SQL的不一样么?我是用PL/SQL删除的
      

  4.   

    。 
    sqlplus 里  PURGE TABLE '你所说的乱码'http://www.builder.com.cn/2007/1004/535850.shtml
    10G 里引入了 一个新特性 就是flashback 
      

  5.   

    PL/SQL只是客户端脚本,具体结果取决于服务器端的版本及选项。
      

  6.   

    删除的时候加上PURGE 就不会有2条记录了;
    drop table **** purge
     1楼说的很对,删除就是一个简单的重命名