zoukankan      html  css  js  c++  java
  • 如何删除掉一个用户下的所有对象

    create or replace procedure drop_all as
      cursor cur_obj is
        select uo.OBJECT_NAME, uo.OBJECT_TYPE
          from user_objects uo
         where uo.OBJECT_NAME not in ('DROP_ALL')
           and uo.OBJECT_TYPE not in ('LOB');
    
    /*  cursor cur_tablespace is
        select ut.TABLESPACE_NAME
          from user_tablespaces ut
         where ut.TABLESPACE_NAME not in
               ('SYSTEM', 'SYSAUX', 'UNDOTBS1', 'TEMP', 'USERS');*/
    
      v_obj_name         user_objects.OBJECT_NAME%type;
      v_obj_type         user_objects.OBJECT_TYPE%type;
    /*  v_tablespaces_name user_tablespaces.TABLESPACE_NAME%type;*/
      sql_str1           varchar2(2000);
    /*  sql_str2           varchar2(2000);*/
    begin
      open cur_obj;
      loop
        fetch cur_obj
          into v_obj_name, v_obj_type;
        exit when cur_obj%notfound;
        sql_str1 := 'drop ' || v_obj_type || ' ' || v_obj_name;
        execute immediate sql_str1;
      end loop;
      close cur_obj;
    /*  open cur_tablespace;
      loop
        fetch cur_tablespace
          into v_tablespaces_name;
        exit when cur_tablespace%notfound;
        sql_str2 := 'drop tablespace ' || v_tablespaces_name ||
                    ' including contents';
        execute immediate sql_str2;
      end loop;
      close cur_tablespace;*/
    end drop_all;
    

      这个存储过程可以一把删掉用户下几乎所有的对象。注释里的东西释放出来就能删除表空间了。这个过程不能回滚,绝对不要在生产环境或者有用的环境上使用。我不对这个过程执行的结果负任何责任。

          这个脚本适合在那种删除用户不是很方便的时候使用。

          更简单的办法就是删掉用户再重建用户。

  • 相关阅读:
    NativeXml (1):下载、安装、测试
    NativeXml (7):添加属性
    NativeXml (9):读取
    NativeXml (2):对象建立
    NativeXml (3):保存
    NativeXml (6):添加节点
    NativeXml (10):编辑
    NativeXml (5):事件
    博客园现代化建设—用 Entity Framework 与 Json.NET 实现数据的按需更新
    Entity Framework 小知识分享
  • 原文地址:https://www.cnblogs.com/wingsless/p/2260585.html
Copyright © 2011-2022 走看看