求类似于PL/SQL中drop表的方法

coolnan 2008-01-22 12:07:56
各位大侠,我现在用IMP恢复数据,想在恢复前先删除表空间下的所有表,然后再导入,避免不必要的麻烦。

在PL/SQL里面,可以直接用drop菜单,不管表间关系如何复杂,都能将所有选中的表全部删除,而不存在索引和外健的问题。

但是如果手动删除,也可以得到当前表空间下的所有表,在删除时,受到表间关系的约束,有些表删不了。

谁有好的办法解决这个问题,望多多指教,谢谢各位。

...全文
584 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sulins 2008-01-31
  • 打赏
  • 举报
回复
呵呵,迄今为止,没有看到满意答案-存储过程。

-----------------------
楼主在等现成的代码!
guo0399 2008-01-31
  • 打赏
  • 举报
回复
我觉得即使是IMP也要在至少装有Oracle客户端的机器上才可以吧?
coolnan 2008-01-31
  • 打赏
  • 举报
回复
呵呵,迄今为止,没有看到满意答案-存储过程。
sulins 2008-01-31
  • 打赏
  • 举报
回复
关键在数据库备份文件当初是怎么exp出来的。全库导出,分用户导出,还是其他?
gccr 2008-01-30
  • 打赏
  • 举报
回复
Drop user cascade
这样就会把该用户所有的东西都干掉了。
再新建用户。

如果不是完全恢复,注意是否有重复的数据。
dawugui 2008-01-26
  • 打赏
  • 举报
回复
各位大侠,我现在用IMP恢复数据,想在恢复前先删除表空间下的所有表,然后再导入,避免不必要的麻烦。

在PL/SQL里面,可以直接用drop菜单,不管表间关系如何复杂,都能将所有选中的表全部删除,而不存在索引和外健的问题。

但是如果手动删除,也可以得到当前表空间下的所有表,在删除时,受到表间关系的约束,有些表删不了。

谁有好的办法解决这个问题,望多多指教,谢谢各位。
--

删除表:drop table tbname

如果是整个恢复库,把用户删除了,再重新建立同名用户.然后导入BMP文件即可.
coolnan 2008-01-26
  • 打赏
  • 举报
回复
TO fenixshadow :

不知你做过系统没有,我这里要实现的是数据库的备份恢复,好多程序中就有这样的要求,莫非你要给用户的每台机子上都装ORACLE,现实吗?
凤影 2008-01-23
  • 打赏
  • 举报
回复
看着就不爽:

呵呵,希望是纯ORACLE的方法,用代码实现的,如果用工具,我就不用在这里问了。

怎么着你工具用很熟了? 跟你说,工具用好了你就真的不用来这里问了。

zhangxf1981 2008-01-22
  • 打赏
  • 举报
回复
用4楼的方法 生成的语句多执行几遍就全部删除了
coolnan 2008-01-22
  • 打赏
  • 举报
回复
呵呵,希望是纯ORACLE的方法,用代码实现的,如果用工具,我就不用在这里问了。
AFIC 2008-01-22
  • 打赏
  • 举报
回复
其实那里只不过多了一个disable foreign key
你下个pl/sql developer,选tool->export table
钩上drop table 和disable foreign key
生成个脚本文件把后边的创建删了一执行就好了
worldly_wind 2008-01-22
  • 打赏
  • 举报
回复
你打算恢复数据库,只删除表,那视图以及存储过程、函数怎么办?

在enterprise manager中先删除用户,再删除表空间。
恢复的时候创建表空间,创建用户,并赋予一定的权限。


coolnan 2008-01-22
  • 打赏
  • 举报
回复
SELECT 'DROP TABLE '||table_name||' CASCADE CONSTRAINTS;' FROM tabs t WHERE t.tablespace_name ='用户'

得到所有的DROP语句,在逐一删除。
coolnan 2008-01-22
  • 打赏
  • 举报
回复
我用的是空间数据库,除了属性表,还有很多空间信息,因此不能简单的drop user。

现在表空间跟用户名都是一样的,如信息中心XXZX,从tabs中可以得到所有的表
SELECT * FROM TABS T WHERE T.TABLESPACE_NAME = 'XXZX'

再用存储过程drop table ,这样才比较可行。
AFIC 2008-01-22
  • 打赏
  • 举报
回复
直接drop user
bjt_ 2008-01-22
  • 打赏
  • 举报
回复
drop table xxx CASCADE CONSTRAINTS ;

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧