2015-09-22 107 views
3

我已经使用drop命令从Oracle 10g数据库中删除了一些表。从数据库删除表Oracle 10g

当我列出使用select * from cat;我得到如下表:

Tables list

是表中删除与否?为什么我有这些BIN$...的东西?我怎样才能彻底删除它们或表格?

谢谢!

+4

@DavidAldridge给出了正确的答案。不过,应该避免使用像'tab'或'cat'这样陈旧的数据字典视图。它们是为了向后兼容而存在的,并且不会随着新功能的增加而增强。所以当Oracle引入回收站或新的obect类型时,他们往往不会表现出色。 'all_tables'或'all_objects'将是更多逻辑的数据字​​典表来查询。 –

回答

1

一旦你删除表,他们去recyle斌的情况下,你可以tempopary的时间与他们diseapear时间,让他们回来(以倒叙为例),如果你想在你删除可以做到这一点。

1

Documentation

当你删除一个表,数据库并未立即删除与该表相关的 空间。数据库重命名该表,并且 将其和任何关联对象放置在回收站中,其中,如果 该表被错误地删除,则可以在稍后恢复。 此功能称为闪回删除,并使用FLASHBACK TABLE 语句来恢复表。在讨论为此目的使用FLASHBACK TABLE语句之前, 在了解回收站的工作方式以及如何管理其内容方面很重要。

要删除pernamently使用PURGE

指定吹扫,如果你想删除表并释放与它在一个单一的步骤相关的空间 。如果指定PURGE,则 数据库不会将该表及其相关对象放入 回收站中。

PURGE TABLE BIN$jsleilx392mk2=293$0; 

用户可以净化自己的对象的回收站,并释放 空间物体,使用下面的语句:

PURGE RECYCLEBIN; 
2

BIN$前缀的表是放置在回收站以方便恢复。您可以通过清除它们来完全删除它们。无论是具体每个表:

PURGE TABLE BIN$ABCDEFG; 

或整个回收站一次:

PURGE RECYCLEBIN;