Oracle清空表空间

  1. 用PL/SQL登录,查询当当前表空间的名字,执行

    --查询当前表空间:

    select username,default_tablespace from user_users;

     或

    --查询所有表空间:

    select tablespace_name from dba_tablespaces;

    Oracle清空表空间
  2. 确定当前表空的名称【当前是TEST,根据步骤一确定】后执行存储过程:

    declare

        v_name all_tables.table_name%type;

        cursor mycur is select table_name from all_tables where owner='TEST';

    begin

        open mycur;

        loop

            fetch mycur into v_name;

            exit when mycur%NOTFOUND OR mycur%NOTFOUND IS NULL;

            execute immediate 'drop table '|| v_name;

        end loop;

        close mycur;

    end;

    执行速度非常快,操作简单,推荐使用。

    Oracle清空表空间
  3. 扩展一下,可以稍稍修改变成,删除所有视图:

    declare

        v_name all_views.view_name%type;

        cursor mycur is select view_name from all_views where owner='TEST';

    begin

        open mycur;

        loop

            fetch mycur into v_name;

            exit when mycur%NOTFOUND OR mycur%NOTFOUND IS NULL;

            execute immediate 'drop view '|| v_name ;

        end loop;

        close mycur;

    end;

    Oracle清空表空间
  4. 一个表空间里面可能数据表和视图都存在,完全可以组合使用这两个存储过程,执行效率比点开tables,选中全部数据表,右击,选择drop,然后点确定,快多了。

    Oracle清空表空间
  5. 以上所有sql都在我本机PL/SQL上运行成功,大家可以直接复制使用。

    Oracle清空表空间
  6. 总体来说,清理表空间的方法很多,不管是删除重建也好,清空表空间也好,要找到一个高效率的方法,这样才能将工作效率提上去,上面是我这次总结的方法,希望大家在工作学习中能用到吧。

    Oracle清空表空间
  7. 7

    直接删除表空间也是可以的:

    DROP TABLESPACE  表空间名称 INCLUDING CONTENTS AND DATAFILES;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值