【问题标题】:oracle - what is table name with prefix is BIN$oracle - 带前缀的表名是 BIN$
【发布时间】:2020-02-25 04:24:19
【问题描述】:

我在 Oracle Db (12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production) 中为某些表创建分区

当我使用此命令显示分区信息时,我得到了带有前缀“BIN$”的 TABLE_NAME (BIN$l6719qYYHz/gUwEAAH/8jQ==$0)

这个表是什么意思?为什么它出现在我的数据库中? 我可以删除它吗?

请留下任何有关它的文件

非常感谢!

select TABLE_OWNER, TABLE_NAME,PARTITION_NAME, num_rows , SUBPARTITION_COUNT from ALL_TAB_PARTITIONS where TABLE_OWNER like '%TEST%' ;

【问题讨论】:

标签: oracle oracle12c


【解决方案1】:

BIN$ 开头的表名是被删除并在回收站中的表。

DROP TABLE 命令通过重命名将表逻辑移动到回收站。

您可以使用以下命令查看所有回收站对象:

SQL> SHOW RECYCLEBIN
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
BU_TABLE         BIN$+9q0Ry8iT1ivyRponKIZ4g==$0 TABLE        2020-02-04:21:32:08

如果您不想将表格存储在回收站中,即您不想闪回表格,那么您可以使用PURGE 选项和DROP TABLE 命令作为:

DROP TABLE your_table PURGE;

您甚至可以在会话和系统级别设置回收站的开/关。

-- Session
ALTER SESSION SET recyclebin = OFF;
ALTER SESSION SET recyclebin = ON;

-- System
ALTER SYSTEM SET recyclebin = OFF;
ALTER SYSTEM SET recyclebin = ON;

如果您与删除的对象无关,意味着您没有任何计划闪回回收站中已删除的表,那么您可以使用以下技术之一 purge 回收站对象:

PURGE TABLE tablename; -- it will remove the table from recycle bin
PURGE RECYCLEBIN; -- it will remove a current user's recycling bin 
PURGE DBA_RECYCLEBIN; -- it will remove entire recycle bin

干杯!!

【讨论】:

  • 谢谢! @Tejash 你有文档 URL 吗?我想了解更多信息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
相关资源
最近更新 更多