现象:
ORA-14006 when partition operation is used with FOR clause for partitioned index or for partitioned index organized table (IOT).
ALTER TABLE <IOT> MODIFY PARTITION FOR(10) ....
ALTER INDEX <partitioned index> MODIFY PARTITION FOR(10) ....
e.g.
alter index idx2 modify partition for(10) nocompress
*
ERROR at line 1:
ORA-14006: invalid partition name
alter table iot1 modify partition for(10) coalesce
*
ERROR at line 1:
ORA-25189: illegal ALTER TABLE option for an index-organized table
ORA-14006: invalid partition name
This occurs for other partition maintenance operations (e.g. split, drop, rebuild) for partitioned index and for IOT.
原因:
Unpublished minor bug, that is with development at the time of writing this article.
处理方法:
1./ Determine the corresponding partition/subpartition by looking up the PARTITION_NAME
SUBPARTITION_NAME, HIGH_VALUE columns of the corresponding dictionary view:
user|dba|all_tab_partitions
user|dba|all_tab_subpartitions
user|dba|all_ind_partitions
user|dba|all_ind_subpartitions
2./ Use the partition name instead of the FOR clause.
e.g.
alter index idx2 modify partition pi1 nocompress;
alter table iot1 modify partition p2 coalesce;
|