删除后仍然存在一个表

时间:2013-05-18 15:38:42

标签: sql oracle

当我使用此命令时,它起作用,这意味着我的表被删除了

DROP TABLE <TABLE NAME> ;

但是当我查询

SQL>SELECT * FROM TAB;

我丢弃的牌桌没有显示。但是像BIN$+NP+VhP7RF2hLc1AoJf+gg==$0这样的其他一些表格是。

如何删除此类表格?

2 个答案:

答案 0 :(得分:5)

您使用的是最新版本的Oracle,而您的表格已放在RECYCLEBIN中。要在第一个实例中完全摆脱它,您可以使用

drop table <table_name> purge;

引用DROP TABLE上的the documentation

  

如果要删除表并释放空间,请指定PURGE   只需一步即可与之相关联。如果你指定PURGE,那么   数据库不会将表及其依赖对象放入   回收站。
  ...
  使用此子句相当于首先删除   该表然后从回收站中清除它。这个条款允许   你在这个过程中保存了一步。它还提供增强的安全性   如果你想防止敏感材料出现在   回收站。

RECYCLEBIN可以派上用场......当你不小心丢掉错误的桌子时,这是一个额外的备份。如果在删除表时指定PURGE,则永远无法从RECYCLEBIN中检索表。但请注意,如果您在没有的情况下删除,则不会释放该对象使用的空间。

要从RECYCLEBIN中删除表格,您可以使用:

purge table "BIN$+NP+VhP7RF2hLc1AoJf+gg==$0";

请注意,由于对象名称是加密的,因此您需要双引号。

答案 1 :(得分:0)

这通常发生在 SSMS 中。这背后的原因是,您必须在另一个窗口中打开该放置的表(设计)。

这是我的情况,缓存/bin 仍然保留引用,直到关闭上一个设计窗口。