ORACLE下删除当前用户下所有对象的SQL

ORACLE下删除当前用户下所有对象的SQL,这个是转别人的,但是,做了修改和注释 

Sql代码 
 1 --删除某个用户下的对象
 2 set heading off;
 3 set feedback off;
 4 spool c:\dropobj.sql;
 5   prompt --Drop constraint
 6  select 'alter table '||table_name||' drop constraint '||constraint_name||' ;' from user_constraints where constraint_type='R';
 7  prompt --Drop tables
 8  select 'drop table '||table_name ||';' from user_tables; 
 9  
10  prompt --Drop view
11  select 'drop view ' ||view_name||';' from user_views;
12  
13  prompt --Drop sequence
14  select 'drop sequence ' ||sequence_name||';' from user_sequences; 
15  
16  prompt --Drop function
17  select 'drop function ' ||object_name||';'  from user_objects  where object_type='FUNCTION';
18 
19  prompt --Drop procedure
20  select 'drop procedure '||object_name||';' from user_objects  where object_type='PROCEDURE';
21  
22  prompt --Drop package
23  prompt --Drop package body
24  select 'drop package '|| object_name||';' from user_objects  where object_type='PACKAGE';
25 
26  prompt --Drop database link
27  select 'drop database link '|| object_name||';' from user_objects  where object_type='DATABASE LINK';
28  
29 spool off;
30 set heading on;
31 set feedback on;
32 
33 @@c:\dropobj.sql;
34 host del c:\dropobj.sql;

 



注释: 
1.上面这个语句,在pl/sql里面是放在命令里面执行的。 
2.set heading off; 意思就是关闭表头。如果不关闭,写入dropobj.sql文件中就会带有结果集的表头如: 
'DROPTABLE'||TABLE_NAME||';' 
------------------------------------------ 
drop table TEACHER; 
实际上我们需要的是“drop table TEACHER;”,“'DROPTABLE'||TABLE_NAME||';' 
”就是表头。 
3.set feedback off; 意思就是关闭回显。如果不关闭,写入dropobj.sql文件中就会带有返回结果集的大小等信息,如:"137 rows selected" 
4.spool c:\dropobj.sql; 把结果集写入这个文件。spool off; 结束写入。 
5.@@c:\dropobj.sql; 执行这个sql 
6.host del c:\dropobj.sql; 删除主机上这文件。 
7.CONSTRAINT_TYPE 就是键的类型: 

Sql代码  收藏代码
  1. C (check constraint on a table)   
  2. P (primary key)   
  3. U (unique key)  
  4. R (referential integrity)  
  5. V (with check optionon a view)  
  6. O (with read onlyon a view)  


8.当执行'drop package ………… '这句时,package body会被同时删除。

posted @ 2012-06-27 14:59  flowbywind  阅读(217)  评论(0)    收藏  举报