oracle數據庫中drop table與purge使用實例

oracle  數據庫中 drop table 與purge
 
 
實際示例:
 
CREATE OR REPLACE PROCEDURE pro_droptable IS
 
  cursor cur is
 
    select table_name from user_tables where table_name like 'TEMPTABLE%';
 
  drop_sql     varchar2(1000);
 
  table_number number;
 
BEGIN
 
  SELECT COUNT(*) INTO table_number from USER_TABLES WHERE TABLE_NAME LIKE 'TEM%';
 
  for tbname in cur loop
 
    begin
 
      if table_number < 50 then
 
        exit;
 
      end if;
 
      drop_sql := 'drop table ' || tbname.table_name || 'purge';
 
      execute immediate drop_sql;
 
      table_number := table_number - 1;
 
   
 
    end;
 
  end loop;
 
END pro_droptable;
 
解釋:
 
drop後的表被放在回收站(user_recyclebin)裏,而不是直接刪除掉。這樣,回收站裏的表信息就能夠被恢復,或完全清除。 
1.經過查詢回收站user_recyclebin獲取被刪除的表信息,而後使用語句 
flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_table_name>]; 
將回收站裏的表恢復爲原名稱或指定新名稱,表中數據不會丟失。 
若要完全刪除表,則使用語句:drop table <table_name> purge; 
2.清除回收站裏的信息 
清除指定表:purge table <table_name>; 
清除當前用戶的回收站:purge recyclebin; 
清除全部用戶的回收站:purge dba_recyclebin; 
示例2:
 
CREATE OR REPLACE PROCEDURE pro_clean_recycle IS
 
--tmpVar NUMBER;
 
clean_recycle_sql varchar2(1000);
 
BEGIN
 
   --purge recyclebin;
 
   clean_recycle_sql :='purge recyclebin';
 
   execute immediate clean_recycle_sql;
 
END pro_clean_recycle;
相關文章
相關標籤/搜索