错误信息
【汉】ORA-10635:无效的段或表空间类型
【英】ORA-10635:Invalid segment or tablespace type
序
在正常运行的Oracle数据库中,执行收缩段(表)报错。
版本
Oracle 【11.2.0.3.0】、【11.2.0.1.0】、【11.2.0.4.0】
故
无法收缩段,因为Oracle在收缩前检测到,段(表)不在自动段空间管理的表空间中,或者不是数据、索引或lob段。
检查段(表)中是否有函数索引,如果有函数索引,也不能进行收缩。
解
先通过sql查看表中是否有函数索引。
select * from dba_indexes where table_name='TEST2';
从上图中,可以看出此时报错主要是因为TEST2表中有函数索引,具有函数索引的表是不能被收缩空间的。
排查到问题主要是函数索引导致之后,通过plsql将函数索引的定义(创建语句)拿到,然后删除函数索引并收缩表,收缩完毕再创建函数索引即可。
评论区