oracle 回收站

你可以使用下面的查询语句来查看回收站的当前状态:

    1. SELECT Value FROM V$parameter WHERE Name = 'recyclebin';
    2. 你可以启动或者关闭回收站里的每个会话(session)和系统(system),代码如下:
        1. ALTER SYSTEM SET recyclebin = ON;      
        2.  
        3. ALTER SESSION SET recyclebin = ON;      
        4.  
        5. ALTER SYSTEM SET recyclebin = OFF;      
        6.  
        7. ALTER SESSION SET recyclebin = OFF;   

      你可以使用下面的任意一个语句来获得回收站中的对象:

      1. SELECT * FROM RECYCLEBIN;      
      2.  
      3. SELECT * FROM USER_RECYCLEBIN;      
      4.  
      5. SELECT * FROM DBA_RECYCLEBIN; 

      可以使用如下语法来还原被删除的对象:

      1. view sourceprint?1 FLASHBACK TABLE <<Dropped_Table_Name>> TO BEFORE DROP RENAME TO <<New_Table_Name>>;  

      备注:这里的RENAME是给删除的对象进行重新命名,是一个可选命令。

      清空回收站

      这里的清空包含两种情况,第一你可以有条件的清空;第二是全部清空。我们先来看看有条件的清空该如何做:

      a.清空一个特定的表:

      1. PURGE TABLE <<Table_NAME>>; 

      b.清空一个特定的索引:

      1. PURGE INDEX <<Index_NAME>>; 

      c.清空与该表空间有关联的对象:

      1. PURGE TABLESPACE<<Table_NAME>>; 

      d.清空一个特定用户的表空间对象:

      1. PURGE TABLESPACE<<Table_NAME>> USER <<User_Name>>; 

      e.清空回收站:

      1. PURGE RECYCLEBIN; 

      f.当一个表被删除(drop)时就直接从回收站中清空

      1. DROP TABLE <<Table_Name>> PURGE; 

      Demo

      1.启动回收站功能

      1. ALTER SYSTEM SET recyclebin = ON; 

      2.创建一个DEMO_RECYCLEBIN表

      1. CREATE TABLE DEMO_RECYCLEBIN (COL1 NUMBER); 

      3.向DEMO_RECYCLEBIN表中插入一条数据

      1. INSERT INTO DEMO_RECYCLEBIN (COL1) VALUES (1); COMMIT; 

      4.删除(Drop)DEMO_RECYCLEBIN表

      1. DROP TABLE DEMO_RECYCLEBIN; 

      5.查询

      1. SELECT * FROM USER_RECYCLEBIN; 

      结果:

      6.从回收站中还原DEMO_RECYCLEBIN表

      1. FLASHBACK TABLE DEMO_RECYCLEBIN TO BEFORE DROP; 

      7.还原后查询

      1. SELECT * FROM DEMO_RECYCLEBIN; 

      查询结果和删除前是一致的。

      8.删除表,并且将其从回收站中清空

        1. DROP TABLE DEMO_RECYCLEBIN PURGE;

posted @ 2015-06-29 10:19  update_  阅读(162)  评论(0编辑  收藏  举报