ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【笔记】删除指定用户下的所有表

【笔记】删除指定用户下的所有表

原创 Linux操作系统 作者:klamm0 时间:2010-07-15 09:20:07 0 删除 编辑

  1、

  select   'Drop   table   '||table_name||';'

  from   all_tables

  where   wner='要删除的用户名(注意要大写)';

  2、

  删除所有表

  以用户test为例

  for example:

  declare

  cursor cur1 is select table_name from dba_tables where wner='TEST';

  begin

  for cur2 in cur1 loop

  execute immediate 'drop table test.'||cur2.table_name;

  end loop;

  end;

  3、这个删除当前用户的所有对象(表、视图、触发器、存储过程、函数)

  DECLARE

  TYPE name_list IS TABLE OF VARCHAR2(40);

  TYPE type_list IS TABLE OF VARCHAR2(20);

  Tab_name name_list:=name_list();

  Tab_type type_list:=type_list();

  sql_str VARCHAR2(500);

  BEGIN

  sql_str := 'select uo.object_name,uo.object_type from user_objects uo where uo.object_type not in(''INDEX'',''LOB'') order by uo.object_type desc';

  EXECUTE IMMEDIATE sql_str BULK COLLECT INTO tab_name,tab_type;

  FOR i IN Tab_name.FIRST.. Tab_name.LAST LOOP

  sql_str := 'DROP ' || Tab_type(i) || ' ' || Tab_name(i);

  EXECUTE IMMEDIATE sql_str;

  END LOOP;

  END;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22786751/viewspace-668043/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-10-30

  • 博文量
    58
  • 访问量
    58088