为什么Oracle会给出错误:“此群集中不允许有更多表”?

时间:2012-01-18 12:47:31

标签: oracle clustered-index

在尝试创建群集表时,我收到错误“此群集中不允许有更多表”。

Oracle关于群集功能的documentation说:

  

群集最多可包含32个表。

但是在发生错误时,群集只包含18个表,如下面的查询:

select * from user_tables where cluster_name='MY_CLUSTER';

我怀疑那些曾经属于集群但后来被丢弃的表仍然被计入最大允许限制。

有没有办法检查上述假设?

1 个答案:

答案 0 :(得分:2)

检查视图USER_CLU_COLUMNS。如果你放弃了一张桌子,它可能仍会在这里列出,但内部名称不是原来的。

select count(distinct (TABLE_NAME))
  from USER_CLU_COLUMNS
 where CLUSTER_NAME = 'MY_CLUSTER';

这可能是因为您的数据库有回收站。检查一下:

select *
  from RECYCLEBIN
 where ORIGINAL_NAME = '<your table>';

请查看此link以获取有关回收站的更多信息。