1、用PL/SQL登录,查询当当前表空间的名字,执行--查询当前表空间:select username,default_tablespace from user_users;或--查询所有表空间:select tablespace_name from dba_tablespaces;
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;执行速度非常快,操作简单,推荐使用。
3、扩展一下,可以稍稍修改变成,删除所有视图:declare v_name all_v坡纠课柩iews.view_name%t烤恤鹇灭ype; 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;
4、一个表空间里面可能数据表和视图都存在,完全可以组合使用这两个存储过程,执行效率比点开tables,选中全部数据表,右击,选择drop,然后点确定,快多了。
5、以上所有sql都在我本机PL/SQL上运行成功,大家可以直接复制使用。
6、总体来说,清理表空间的方法很多,不管是删除重建也好,清空表空间也好,要找到一个高效率的方法,这样才能将工作效率提上去,上面是我这次总结的方法,希望大家在工作学习中能用到吧。
7、直接删除表空间也是可以的:DROP TABLESPACE 表空间名称 INCLUDING CONTENTS AND DATAFILES;