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;  
--删除某个用户下的对象
set heading off;
set feedback off;
spool c:/dropobj.sql;
  prompt --Drop constraint
 select 'alter table '||table_name||' drop constraint '||constraint_name||' ;' from user_constraints where constraint_type='R';
 prompt --Drop tables
 select 'drop table '||table_name ||';' from user_tables; 
 
 prompt --Drop view
 select 'drop view ' ||view_name||';' from user_views;
 
 prompt --Drop sequence
 select 'drop sequence ' ||sequence_name||';' from user_sequences; 
 
 prompt --Drop function
 select 'drop function ' ||object_name||';'  from user_objects  where object_type='FUNCTION';

 prompt --Drop procedure
 select 'drop procedure '||object_name||';' from user_objects  where object_type='PROCEDURE';
 
 prompt --Drop package
 prompt --Drop package body
 select 'drop package '|| object_name||';' from user_objects  where object_type='PACKAGE';

 prompt --Drop database link
 select 'drop database link '|| object_name||';' from user_objects  where object_type='DATABASE LINK';
 
spool off;
set heading on;
set feedback on;

@@c:/dropobj.sql;
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)  
C (check constraint on a table) 
P (primary key) 
U (unique key)
R (referential integrity)
V (with check option, on a view)
O (with read only, on a view)


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值