Oracle中exp备份某个用户后,imp到新的数据库中提示对象已存在,如何删除该用户下所有对象?

我知道 drop user XXXX cascade 可以,但是重新创建该用户后 imp 导入时还是有部分 function.. 提示已存在,大家知道如何在不删除用户的情况下,删除所有对象?谢谢了

删除用户是最方便的,删除用户后它所拥有的对象全部会被删除
建议你将exp/imp命令行都贴出来给你分析追问

谢谢你的回答,这个我知道,我也正是这么做的,但我重新创建用户 imp 时所有表都导入成功,但还是提示有几个 function 已存在(不仅仅是function),估计是创建用户的时候有默认帮你创建了那些function,所以这里应该还是有部分对象的,我想问的是如何在不删除用户的情况下,删除所有对象

追答

begin
for x in (select 'drop '||object_type||' '||owner||'.'||object_name sql1 from dba_objects where owner='XXX') loop
execute immediate x.sql1;
end loop;
end;
/
--XXX是你要删除对象的用户,要大写

温馨提示:答案为网友推荐,仅供参考
相似回答