Oracle 收缩空间问题 - 由于基于函数的索引,alter table <table> 收缩空间返回错误 ORA-10631。存在任何解决方法吗?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5101635/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 22:51:52  来源:igfitidea点击:

Oracle Shrink space issue- alter table <table> shrink space returns the error ORA-10631because of function based indexes. Any workaround exists?

oracleoracle10g

提问by Balualways

I have deleted some data from the table TAB1. In order to claim the space i am performing

我已经从表 TAB1 中删除了一些数据。为了获得我正在表演的空间

alter table TAB1 enable row movement; > goes fine alter table TAB1 shrink space; > ORA-10631: SHRINK clause should not be specified for this object

更改表 TAB1 启用行移动;> 顺利修改表 TAB1 缩小空间;> ORA-10631: 不应为此对象指定 SHRINK 子句

This is because there are function based indexes in the table. We can't shrink a table with function based indexes. Any work around exists for this issue.

这是因为表中有基于函数的索引。我们无法使用基于函数的索引来缩小表。存在针对此问题的任何变通方法。

采纳答案by Balualways

Dropping the Index was the most likely alternative:

删除索引是最有可能的选择:

  1. Drop the Index
  2. Shrink the table space
  3. Create the same index.
  1. 删除索引
  2. 缩小表空间
  3. 创建相同的索引。

回答by cagcowboy

Seems unlikely, other than dropping the FBI and then re-creating it.

似乎不太可能,除了放弃 FBI 然后重新创建它。