Mike/Ixion,

here is the verision i am using.

Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
PL/SQL Release 9.2.0.6.0 - Production
CORE 9.2.0.6.0 Production
TNS for IBM/AIX RISC System/6000: Version 9.2.0.6.0 - Production
NLSRTL Version 9.2.0.6.0 - Production

I have a problem on two scenarios.

Scenario I
==========

Source table is partitioned table and target is not a partitioned table.


SQL> drop table sourcetable;

Table dropped.

SQL> drop table desttable;

Table dropped.

SQL>
SQL> CREATE TABLE sourcetable
2 (OBJECT_NAME VARCHAR2(100))
3 PARTITION BY RANGE (OBJECT_NAME)
4 (PARTITION P1 VALUES LESS THAN (MAXVALUE))
5 /

Table created.

SQL>
SQL>
SQL> CREATE TABLE DESTTABLE
2 (OBJECT_NAME VARCHAR2(100))
3 /

Table created.

SQL>
SQL>
SQL> CREATE INDEX DESTTABLE_IDX ON desttable
2 (OBJECT_NAME)
3 /

Index created.

SQL>
SQL> insert into sourcetable select object_name from user_objects
2 where rownum < 5;

4 rows created.

SQL>
SQL>
SQL> select index_name,status from user_indexes
2 where table_name = 'DESTTABLE'
3 /

INDEX_NAME STATUS
------------------------------ --------
DESTTABLE_IDX VALID

SQL>
SQL>
SQL> ALTER TABLE sourcetable EXCHANGE PARTITION p1 WITH TABLE
2 DESTTABLE
3 /

Table altered.

SQL>
SQL> select index_name,status from user_indexes
2 where table_name ='DESTTABLE'
3 /

INDEX_NAME STATUS
------------------------------ --------
DESTTABLE_IDX UNUSABLE

SQL>
SQL>


============================================================


Scenario II
============

Source table is non partitioned table and target is partitioned table.


SQL> drop table sourcetable;

Table dropped.

SQL> drop table desttable;

Table dropped.

SQL>
SQL> CREATE TABLE sourcetable
2 (OBJECT_NAME VARCHAR2(100))
3 /

Table created.

SQL>
SQL>
SQL> CREATE TABLE DESTTABLE
2 (OBJECT_NAME VARCHAR2(100))
3 PARTITION BY RANGE (OBJECT_NAME)
4 (PARTITION P1 VALUES LESS THAN (MAXVALUE))
5 /

Table created.

SQL>
SQL>
SQL> CREATE INDEX DESTTABLE_IDX ON desttable
2 (OBJECT_NAME) LOCAL
3 /

Index created.

SQL>
SQL> insert into sourcetable select object_name from user_objects
2 where rownum < 5;

4 rows created.

SQL>
SQL>
SQL> select index_name,status from user_indexes
2 where table_name ='DESTTABLE'
3 /

INDEX_NAME STATUS
------------------------------ --------
DESTTABLE_IDX N/A

SQL>
SQL>
SQL> ALTER TABLE desttable EXCHANGE PARTITION p1 WITH TABLE
2 sourcetable
3 /

Table altered.

SQL>
SQL> select index_name,status from user_indexes
2 where table_name ='DESTTABLE'
3 /

INDEX_NAME STATUS
------------------------------ --------
DESTTABLE_IDX N/A

SQL>