昨天干了一天的体力活,到快下班时被要求删除一批测试库上错误的表,主要是这些表的字段和生产上字段顺序对不上,然后让我写个脚本,让dba执行一下,主要是删表这种东西我们都没权限.

然后,我就被难到了,我记得以前都是删一个表啊,还没有批量删过表啊,而且以前删表都是先删除约束再删表的,难道这次让我去把每个表的约束和表名找出来写成一个个删除语句?心想这得加班到明天啊,于是乎网上肯定有oracle的批量删除表脚本吧.

然后找啊找,找了十多个,要么是脚本本身有错,要么还是不成功,最后发现是我的ip没有权限,不过能用的脚本还是锁定了一个,因为我在另外有删除权限的用户下建了一批表通过这个脚本能删除,

这个脚本就是

Begin
for a in (select * from user_constraints t where t.OWNER = 'PERI' and upper(t.TABLE_NAME) like 'TEMP_P4%' ) loop
execute immediate 'alter table '|| a.table_name ||' drop constraint '|| a.constraint_name;
end loop; for x in (select * from all_tables t where t.OWNER = 'PERI' and upper(t.TABLE_NAME) like 'TEMP_P4%') loop
execute immediate 'drop table ' || x.table_name;
end loop;
end;

我上面是删除peri用户下TEMP_P4开头的表,第一个循环删除约束,第二个循环删除表

这个脚本有个缺陷,那就是只能用peri用户登录才能正确执行第一个循环.

到了今早,就是别人给我指出来这个问题,然后我看他怎么写脚本,然后我就惊讶了

drop table ....;
drop table ....;
drop table ....;
drop table ....;
drop table ....;
drop table ....;
......

我说你不用删除约束的吗?

他说他们以前都只删表就行,不用删约束.

好吧,这个我还是赚的,至少我知道了在这里怎么批量删除表,也知道了以后去其它地方怎么批量删除表.

最新文章

  1. html5新增标签和属性
  2. atitit.事件驱动的总结attilax
  3. webApp--cordova 系列1
  4. 台大《机器学习基石》课程感受和总结---Part 1(转)
  5. VS.net中快捷键收缩和展开代码段
  6. Android启动画面实现
  7. shell echo打印换行的方法
  8. Node.js&NPM的安装与配置(转)
  9. wpf 中自定义控件及其使用
  10. simplify the life ECMAScript 5(ES5)中bind方法简介
  11. 前端之JavaScript--基础
  12. 并发concurrent---3
  13. kernel:NMI watchdog: BUG: soft lockup - CPU#6 stuck for 28s! CentOS7linux中内核被锁死
  14. ECharts导出word 图表模糊失真
  15. TensorFlow中的设备管理——Device的创建与注册机制
  16. Web组件流畅拖动效果
  17. python对象、引用
  18. Qt+QGis二次开发:打开S-57格式(*.000)电子海图数据,并设置多边形要素的显示风格
  19. python 虚拟环境操作 virtualenv +virtualenvwrapper
  20. JAVAEE——SpringBoot日志篇:日志框架SLF4j、日志配置、日志使用、切换日志框架

热门文章

  1. python 读csv格式的文件
  2. linux常用命令:touch 命令
  3. golang学习笔记7 使用beego swagger 实现API自动化文档
  4. Symfony2 UserSecurityEncoder实现自己的验证方式
  5. [转载]Oracle数据库基础--SQL查询经典例题
  6. Python进阶【第六篇】内置函数中好玩的几个(今天写的太水)
  7. kafka数据可靠传输
  8. awk中截取IP字段
  9. 容器学习笔记之CentOS7安装Docker(安装指定版本的Docker,加速,卸载)
  10. mysql判断两个时间段是否有交集