日期:2014-05-16  浏览次数:20517 次

Oracle下删除一个用户的所有对象

执行一个脚本即可,脚本内容如下:
set lin 200
set pagesize 10000
set heading off
select 'drop ' ||object_type||' '||object_name||';'from user_objects;
执行该脚本后,将输出的内容再次执行即可

简单的举一个例子,比如仅仅想删除所有的table
SQL> set lin 200
SQL> set pagesize 10000
SQL> set heading off
SQL> select 'drop table '||table_name||';' from user_tables;

drop table BONUS;
drop table DEPT;
drop table EMP;
drop table SALGRADE;
drop table T;
drop table TT;
drop table TTT;

7 rows selected.
SQL>

然后把那些drop语句粘贴过去执行一下就可以了。当然如果表之间关联关系较多,可以多执行两遍。同理,同义词,序列等也可以通过类似的方法来实现。

如果想将所有的对象都删除,就执行:
select 'drop ' ||object_type||' '||object_name||';'from user_objects;
即可

?

?

方法2:

drop user XXXX cascade;