SQL> SQL> /* From ORACLE DOC DOC>For index-organized tables, Oracle uses the address of the primary key, as well as DOC>its value, to construct logical rowids. The logical rowids are stored in the DOC>secondary index of the table. If you move a partition of an index-organized table, DOC>then the address portion of the rowids will change, which can hamper performance. DOC>To ensure optimal performance, rebuild the secondary index(es) on the moved DOC>partition to update the rowids. DOC> DOC> DOC>Oracle invalidates any global indexes on heap-organized tables. You can update DOC>these indexes during this operation using the update_global_index_clause. DOC>Global indexes on index-organized tables are primary key based, so they do not DOC>become unusable. DOC> DOC>The move_table_clause rebuilds the index-organized table's primary key index. DOC> DOC>ONLINE Clause DOC> DOC>Specify ONLINE if you want DML operations on the index-organized table to be DOC>allowed during rebuilding of the table's primary key index. DOC> DOC>Restrictions on the ONLINE Clause DOC> DOC> * You cannot combine this clause with any other clause in the same statement. DOC> * You can specify this clause only for a nonpartitioned index-organized table. DOC> * Parallel DML is not supported during online MOVE. If you specify ONLINE and DOC> then issue parallel DML statements, then Oracle returns an error. DOC> DOC> DOC>"online" is under move_table_clause. DOC>There is no "online" sub-clause under alter_table_partitioing.move_table_partition clause. DOC> DOC>*/ SQL> SQL> drop table part_range_iot; Table dropped. SQL> SQL> create table part_range_iot (c1 number(3), c2 varchar2(2), c3 char(1), 2 constraint part_range_iot_pk primary key (c1)) 3 partition by range (c1) 4 (partition p1 values less than (100), 5 partition p2 values less than (200), 6 partition p3 values less than (300) 7 ) 8 ; Table created. SQL> SQL> alter table part_range_iot move partition p1; Table altered. SQL> SQL> -- Online does not work even when the table is not IOT SQL> alter table part_range_iot move partition p1 online; alter table part_range_iot move partition p1 online * ERROR at line 1: ORA-14020: this physical attribute may not be specified for a table partition SQL> SQL> alter table part_range_iot move online; alter table part_range_iot move online * ERROR at line 1: ORA-01735: invalid ALTER TABLE option SQL> SQL> drop table part_range_iot; Table dropped. SQL> SQL> create table part_range_iot (c1 number(3), c2 varchar2(2), c3 char(1), 2 constraint part_range_iot_pk primary key (c1)) 3 organization index 4 partition by range (c1) 5 (partition p1 values less than (100), 6 partition p2 values less than (200), 7 partition p3 values less than (300) 8 ) 9 ; Table created. SQL> SQL> -- If no tablespace is specified, it remains in the same tablespace. SQL> -- No online allowed with IOT partition SQL> alter table part_range_iot move partition p1 online; alter table part_range_iot move partition p1 online * ERROR at line 1: ORA-14020: this physical attribute may not be specified for a table partition SQL> SQL> -- OK SQL> alter table part_range_iot move partition p1; Table altered. SQL> SQL> -- cann't move the whole partitioned IOT SQL> alter table part_range_iot move online; alter table part_range_iot move online * ERROR at line 1: ORA-28660: Partitioned Index-Organized table may not be MOVEd as a whole SQL> alter table part_range_iot move; alter table part_range_iot move * ERROR at line 1: ORA-28660: Partitioned Index-Organized table may not be MOVEd as a whole SQL> SQL> -- Not OK SQL> alter table part_range_iot initrans 4 online; alter table part_range_iot initrans 4 online * ERROR at line 1: ORA-01735: invalid ALTER TABLE option SQL> -- OK SQL> alter table part_range_iot initrans 4; Table altered. SQL> SQL> drop table part_range_iot; Table dropped. SQL> SQL> create table part_range_iot (c1 number(3), c2 varchar2(2), c3 char(1), 2 constraint part_range_iot_pk primary key (c1)) 3 organization index; Table created. SQL> SQL> -- Online works only with nonpartitioned IOT SQL> alter table part_range_iot move online; Table altered. SQL> SQL> drop table part_range_iot; Table dropped. SQL> spool off