我是Oracle的新手,为了实践,我在Oracle 11g中创建了一些表(客户,驱动程序,付款,预订,位置,区域,工作,工作历史),经select * from cat
声明,我发现了一个奇怪的表以及其他名为“ BIN $”的表。 c + eOnMB3RbKSEfg / rsxtAQ == $ 0“。我不知道为什么创建此表。
我试图通过删除此表
drop table BIN$c+eOnMB3RbKSEfg/rsxtAQ==$0;
Run Code Online (Sandbox Code Playgroud)
但它给出了错误:
删除表BIN $ c + * eOnMB3RbKSEfg / rsxtAQ == $ 0
第1行出现错误:ORA-00933:SQL命令未正确结束
我该怎么做才能将其删除?
您看到的是在 RECYCLEBIN
您可以通过此查询获取表的原始名称
SELECT original_name FROM RECYCLEBIN where OBJECT_NAME = 'BIN$c+eOnMB3RbKSEfg/rsxtAQ==$0';
Run Code Online (Sandbox Code Playgroud)
请注意(使用参数设置),如果您删除表,则不会完全删除该表,而是将其移入回收站。
您可以使用PURGE
选项省略此操作。
删除表xxx清除;
要从回收站中删除表,您必须使用双引号对名称进行qoute(因为这不是有效的名称),并使用PURGE语句(不是DROP-这将触发ORA-38301: can not perform DDL/DML over objects in Recycle Bin
)。
PURGE TABLE "BIN$c+eOnMB3RbKSEfg/rsxtAQ==$0"
Run Code Online (Sandbox Code Playgroud)
或者,您可以将original_name
获取的与上面的查询一起使用:
PURGE TABLE {your_original_name};
Run Code Online (Sandbox Code Playgroud)
要彻底清理回收站,请使用此语句(与propper表用户一起使用)
PURGE RECYCLEBIN;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
59 次 |
最近记录: |