如何从Oracle数据库中删除名为“ BIN $ c + eOnMB3RbKSEfg / rsxtAQ == $ 0”的奇怪表?

时间:2019-06-17 16:28:33

标签: oracle

我是Oracle的新手,为了实践,我在Oracle 11g中创建了一些表(客户,驱动程序,付款,预订,位置,区域,工作,工作历史),并根据select * from cat语句发现了一个奇怪的表与其他已创建的名为“ BIN $ c + eOnMB3RbKSEfg / rsxtAQ == $ 0”的表。我不知道为什么要创建此表。

我试图通过

删除此表
drop table BIN$c+eOnMB3RbKSEfg/rsxtAQ==$0;

但是它给出了错误:

  

删除表BIN $ c + * eOnMB3RbKSEfg / rsxtAQ == $ 0

     

第1行出现错误:ORA-00933:SQL命令未正确结束

我应该怎么删除它?

1 个答案:

答案 0 :(得分:8)

您看到的是RECYCLEBIN

中已删除的表格

通过此查询,您可以获取表的原始名称

SELECT original_name FROM RECYCLEBIN where OBJECT_NAME = 'BIN$c+eOnMB3RbKSEfg/rsxtAQ==$0';

请注意(使用您的参数设置),如果您删除表,该表不会被完全删除,而是会在回收站中被移动

您可以使用PURGE选项忽略它。

DROP TABLE XXX PURGE;

要从回收站中删除表格,您必须使用双引号对名称进行引号(因为这不是有效名称),并使用PURGE语句(不是DROP-会触发{{1 }}。

ORA-38301: can not perform DDL/DML over objects in Recycle Bin

或者,您可以使用通过上述查询获得的PURGE TABLE "BIN$c+eOnMB3RbKSEfg/rsxtAQ==$0"

original_name

要清理回收站,请完全使用此语句(与propper table用户一起使用)

PURGE TABLE {your_original_name};