ロードされているデータ・セグメントが、その索引の索引セグメントより新しいものになると、SQL*Loaderによって索引が索引使用禁止状態になります。
SQL文が索引使用禁止状態の索引を参照しようとすると、エラーが発生します。ダイレクト・パス・ロードの実行時に、次のような状況が発生すると、索引またはパーティション索引のパーティションは索引使用禁止状態になります。
SQL*Loaderで索引のための領域が少なくなり、索引が更新できない場合。
データがSORTED
INDEXES
句で指定した順序になっていない場合。
インスタンス障害が発生したか、または索引作成中にOracleシャドウ・プロセスが失敗した場合。
一意の索引内に重複キーがある場合。
データ・セーブポイントを使用中、データ・セーブポイント発生後にロードが正常に実行されないか、またはキーボードからの中断によって終了された場合。
ある索引が索引使用禁止状態かどうかを調べるには、次に示す簡単な問合せを実行します。
SELECT INDEX_NAME, STATUS FROM USER_INDEXES WHERE TABLE_NAME = 'tablename';
表の所有者でない場合は、USER_INDEXES
のかわりに、ALL_INDEXES
またはDBA_INDEXES
を検索してください。
ある索引パーティションが使用禁止状態かどうかを調べるには、次に示す問合せを実行します。
SELECT INDEX_NAME, PARTITION_NAME, STATUS FROM USER_IND_PARTITIONS WHERE STATUS != 'VALID';
表の所有者でない場合は、USER_IND_PARTITIONS
のかわりに、ALL_IND_PARTITIONS
およびDBA_IND_PARTITIONS
を検索します。