0

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

DROP TABLE <TABLE NAME> ;

但是当我查询

SQL>SELECT * FROM TAB;

我删除的表没有显示。但是其他一些表格是这样BIN$+NP+VhP7RF2hLc1AoJf+gg==$0的。

如何删除这种类型的表?

4

2 回答 2

5

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

drop table <table_name> purge;

引用DROP TABLE 上的文档:

如果要在单个步骤中删除表并释放与其关联的空间,请指定 PURGE。如果您指定 PURGE,则数据库不会将表及其相关对象放入回收站。
...
使用此子句相当于先删除表,然后将其从回收站中清除。此子句可让您节省流程中的一个步骤。如果您想防止敏感材料出现在回收站中,它还可以提供增强的安全性。

不过,RECYCLEBIN 可以派上用场……当您不小心丢错桌子时,它是一个额外的备份。如果您在删除表时指定 PURGE,您将永远无法从 RECYCLEBIN 中检索该表。但是请注意,如果您 DROP而不清除对象使用的空间,则不会释放该空间。

要从 RECYCLEBIN 中删除表,您将使用:

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

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

于 2013-05-18T15:41:08.457 回答
1

This usually happens in SSMS. The reason behind this is, you must have open that dropped table(Design) in another window.

This was my case, cache/bin still preserve the reference until previous design window is closed.

于 2021-06-08T13:52:10.987 回答