网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  怎样才能删除所有表中的"procedure"     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:103次  录入:管理员--2008-02-29  
 

问题:如何删除所有表的procedure?

解决此问题的示例:

create procedure proc_drop_all_tables()
begin
declare v_tablename varchar(50);
declare v_constname varchar(50);
declare flag int default 0;
--定义一个游标,寻找所有的外键
declare cur_constraint cursor for 
select table_name,constraint_name
from information_schema.table_constraints
where constraint_type='foreign key'
and table_schema=(select database());
--定义一个游标,寻找所有表
declare cur_table cursor for select table_name 
from information_schema.tables
where table_type='base table' and table_schema=( select database());
--定义一个游标,寻找所有视图
declare cur_view cursor for select table_name 
from information_schema.tables
where table_type='view' and 
table_schema=( select database());
declare continue handler for not found
set flag=1;
--循环去删除所有外键
open cur_constraint;
repeat
fetch cur_constraint into v_tablename,v_constname;
if flag= 0 then
set @v_sql = concat('alter table ',v_tablename,' 
drop foreign key ',v_constname);
prepare stmt from @v_sql;
execute stmt;
end if;
until flag=1
end repeat;
close cur_constraint;
set flag=0;
--循环去删除所有视图
open cur_view;
repeat
fetch cur_view into v_tablename;
if flag=0 then
set @v_sql = concat('drop view ',v_tablename);
prepare stmt from @v_sql;
execute stmt;
end if;
until flag=1
end repeat;
set flag=0;
close cur_view;
--循环去删除所有表
open cur_table;
repeat
fetch cur_table into v_tablename;
if flag = 0 then
set @v_sql = concat('drop table ',v_tablename);
prepare stmt from @v_sql ;
execute stmt ;
end if;
until flag=1
end repeat;
deallocate prepare stmt;
close cur_table;
end;

 
 
上一篇: 如何才能限制用户对自己对象的ddl权限    下一篇: 如何对系统默认的约束名和索引名重命名
  相关文档
轻松掌握关闭oracle死锁进程的具体步骤 05-12
带你快速了解oracle数据库提供的恢复机制 05-05
oracle数据库维护常用sql语句集合(1) 07-01
详细讲解oracle数据库sys密码的找回方法 08-01
oracle数据库中使用dbms_profiler进行调优 05-07
oracle 9i和10g安装后的基本环境与服务 (1) 04-30
排除cache影响手动强制刷新buffer cache 05-27
在oracle数据库中移动数据文件的具体方法 08-04
分析如何选择Oracle优化器使你事半功倍 05-27
实例讲解分区表的可用性及相关错误案例 (1) 03-31
ip地址变化后oracle 10g如何才能不受影响 04-15
快速掌握ora-00600 4194错误的解决方法 11-15
为什么同机安装10g和11g后会出现连接问题 04-17
脚本示例:查看数据库中有无多余的索引sql 07-01
轻松掌握oralce数据库常用预定义的例外 04-03
Oracle中对COLUMNS_UPDATED()返回值解析 06-17
详细讲解oracle数据库管理员认证方法 04-17
杜绝安全隐患被忽视的Oracle安全问题 04-23
oracle 10g中scn与timestamp的斗转星移 04-28
手工创建数据库的全部脚本及其说明 04-11
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息