ORA-01502: 索引またはそのパーティションが使用不可の状態です。の対処法

この記事ではORA-01502のエラーの対処法について解説します。

 ORA-01502: 索引またはそのパーティションが使用不可の状態です。

「ALTER TABLE MOVE」などで表の再作成などを行い、その後にその表にデータをインサートするとこのようなエラーが発生することがあります。

対象テーブルの索引が使用不可となっており、インサート処理に失敗します。

このエラーを解消するためには索引を再構築する必要があります。


 対処法

まずは索引の状況を確認します。

下記のSQLで使用不可になっている索引を確認できます。

SELECT INDEX_NAME, STATUS FROM USER_INDEXES WHERE STATUS ='UNUSABLE';

使用不可の索引を再構築します。

ALTER INDEX <索引名> REBUILD;

再構築後に再度索引のステータスを確認します。

SELECT INDEX_NAME, STATUS FROM USER_INDEXES WHERE INDEX_NAME =<'索引名'>;
ステータスが「VALID」になっていれば対処完了です。