oracle数据库如何清除一个用户下的所有表?

如题所述

第1个回答  2012-06-24
还不如以system账户登录,然后把该用户删了:drop user user1 cascade;
如果还需要该账户,再重新建一个:create user user1 identified by xxxxx;本回答被网友采纳
第2个回答  2012-06-24
在该用户下写一个存储过程(要保证该用户并不是以dba身份登录的,不然会把系统表都删掉)
create or replace procedure pro_droptable is
cursor cur is select table_name from user_tables;
drop_sql varchar2(1000);
begin
for tbname in cur loop
begin
drop_sql:='drop table '||tbname.table_name;
execute immediate drop_sql;
end;
end loop;
end pro_droptable;

执行语句:call pro_droptable()追问

如果以前该用户,是grant dba to user;赋予权限的,这样删除对系统表有影响吗?能不能像备份那样,exp user/password@db file =/usr/users/daochu.dmp user=username类似的功能?

第3个回答  推荐于2017-07-03
还不如以system账户登录,然后把该用户删了:drop user user1 cascade;如果还需要该账户,再重新建一个:create user user1 identified by xxxxx;本回答被网友采纳
第4个回答  2012-06-24
最简单的办法就是把用户和里面的数据都删除掉drop user name cascade;追问

不能这样啊,这样需要重新建立表空间,并且系统运行很久了,级联方面需要考虑很多,对大型存储系统,我没勇气这样做。

第5个回答  2012-06-25
先drop 在create追问

很多表,不能批处理太麻烦了,我就想知道简单一点的方法。