免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6302 | 回复: 6
打印 上一主题 下一主题

请问怎么能批量删除system用户下的表 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-26 15:10 |只看该作者 |倒序浏览
今天做了个实验,把一般用户的表和对象导入到了system用户下,我现在想删除掉导入的这些数据,但是仍然保留system原有的表和对象。
请问怎么来做?或者是有没有这方面的SQL脚本?谢谢

论坛徽章:
0
2 [报告]
发表于 2009-08-26 15:29 |只看该作者
drop table system.表明

论坛徽章:
2
丑牛
日期:2014-06-11 13:55:04ChinaUnix元老
日期:2015-02-06 15:16:14
3 [报告]
发表于 2009-08-26 15:35 |只看该作者
有表名列表吗?

用shell等工具生成sql脚本

论坛徽章:
0
4 [报告]
发表于 2009-08-26 15:40 |只看该作者

问题是导入的表相当多,不可能一个一个的drop掉

另外表名列表是指,在导入前提前知道导入哪些表吗?

论坛徽章:
2
丑牛
日期:2014-06-11 13:55:04ChinaUnix元老
日期:2015-02-06 15:16:14
5 [报告]
发表于 2009-08-26 16:37 |只看该作者

回复 #4 sxtywyg 的帖子

换个说法,清单

论坛徽章:
0
6 [报告]
发表于 2009-08-26 16:46 |只看该作者
原帖由 山野村夫 于 2009-8-26 16:37 发表
换个说法,清单


你的意思是不是知道清单,在SHELL下写一个SQL脚本?

spool /opt/oracle/drop.sql
drop table system.表名
spool off

这样一个一个输入和在命令行删除也没区别吧?另外,我也不可能知道那么多表的清单。

论坛徽章:
0
7 [报告]
发表于 2009-08-26 16:49 |只看该作者

在网上看到这么个方法,但是我不解的是

system用户下user_objects表的created,有N个,用什么SQL语句可以过滤出并找到自己今天导入的表呢?

楼主要首先找到要删除的表,视图等对象,然后再分别删除.找到要删除的对象的方法是,看system用户下user_objects表的created, 应该都是在同一时间或者是接近的时间内,如都是在2009年6月10日上午10点后导入的,利用这个字段能找到要删除的对象,然后再进行删除.

可利用下面的脚本,删除表
alter session set recyclebin=off;

SET PAGESIZE 0
spool c:\dropobj.sql
SELECT 'DROP ' || object_type || ' ' || object_name || ';'
  FROM user_objects
WHERE object_type IN ('PROCEDURE', 'FUNCTION', 'SEQUENCE', 'VIEW', 'PACKAGE', 'SYNONYM')
  AND CREATED BETWEEN TO_DATE('2009-6-10 10:00:00','YYYY-MM-DD HH24:MI:SS') AND
                      TO_DATE('2009-6-10 11:00:00','YYYY-MM-DD HH24:MI:SS') ;
spool off

spool c:\droptab.sql
SELECT 'DROP TABLE "' || object_name || '" CASCADE CONSTRAINTS PURGE;'
  FROM user_objects
WHERE object_type = 'TABLE'
  AND CREATED BETWEEN TO_DATE('2009-6-10 10:00:00','YYYY-MM-DD HH24:MI:SS') AND
                      TO_DATE('2009-6-10 11:00:00','YYYY-MM-DD HH24:MI:SS') ;
;
spool off
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP