码迷,mamicode.com
首页 > 数据库 > 详细

oracle数据库中drop table与purge使用实例

时间:2015-07-15 12:57:37      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

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;

oracle数据库中drop table与purge使用实例

标签:

原文地址:http://www.cnblogs.com/ignite-dream/p/4647919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!