この記事では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」になっていれば対処完了です。