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

--.sql脚本  
--唯一注意的是下面的D:\dropobj.sql 为操作的.sql;  
--用于删除当前用户的所有对象  
--use for drop all objects in current user;  

set heading off;  
set feedback off;  
spool D:\dropobj.sql;  

prompt --删除约束条件  
select 'alter table '||table_name||' drop constraint '||constraint_name||' ;' 
from user_constraints where constraint_type='R';  

prompt --删除表  
select 'drop table '||table_name ||';' from user_tables;  

prompt --删除视图  
select 'drop view ' ||view_name||';' from user_views;  

prompt --删除序列  
select 'drop sequence ' ||sequence_name||';' from user_sequences;  

prompt --删除函数  
select 'drop function ' ||object_name||';'  from user_objects  
where object_type='FUNCTION';  

prompt --删除存储过程  
select 'drop procedure '||object_name||';' from user_objects  
where object_type='PROCEDURE';  

prompt --删除包  
prompt --删除包内容  
select 'drop package '|| object_name||';' from user_objects  
where object_type='PACKAGE';  

prompt --删除数据库链接  
select 'drop database link '|| object_name||';' from user_objects  
where object_type='DATABASE LINK';  

prompt --删除隐藏对象   
select 'drop synonym '|| object_name||';' from user_objects  where object_type='SYNONYM';   
  
 

prompt --删除物化视图   
select 'drop materialized view '|| object_name||';' from user_objects  where object_type='MATERIALIZED VIEW';     

spool off;  
set heading on;  
set feedback on;  

@@D:\dropobj.sql;  
host del D:\dropobj.sql;  
--done for drop objects in current user;  

--在SQL*PLUS 将这整段作为.sql导入或者直接复制黏贴,按F5执行,完成。 

猜你喜欢

转载自happyqing.iteye.com/blog/1859026