oracle数据库如何清除一个用户下的所有表?
5个回答
展开全部
还不如以system账户登录,然后把该用户删了:drop user user1 cascade;
如果还需要该账户,再重新建一个:create user user1 identified by xxxxx;
如果还需要该账户,再重新建一个:create user user1 identified by xxxxx;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在该用户下写一个存储过程(要保证该用户并不是以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()
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类似的功能?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还不如以system账户登录,然后把该用户删了:drop user user1 cascade;如果还需要该账户,再重新建一个:create user user1 identified by xxxxx;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单的办法就是把用户和里面的数据都删除掉drop user name cascade;
追问
不能这样啊,这样需要重新建立表空间,并且系统运行很久了,级联方面需要考虑很多,对大型存储系统,我没勇气这样做。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先drop 在create
追问
很多表,不能批处理太麻烦了,我就想知道简单一点的方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询