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
Oracle Shrink space issue- alter table <table> shrink space returns the error ORA-10631because of function based indexes. Any workaround exists?
提问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:
删除索引是最有可能的选择:
- Drop the Index
- Shrink the table space
- Create the same index.
- 删除索引
- 缩小表空间
- 创建相同的索引。
回答by cagcowboy
Seems unlikely, other than dropping the FBI and then re-creating it.
似乎不太可能,除了放弃 FBI 然后重新创建它。