当前位置: 代码迷 >> 综合 >> SQL 错误 [1502] [72000]: ORA-01502: index 'ROL_ID_KEY' or partition of such index is in unusable state
  详细解决方案

SQL 错误 [1502] [72000]: ORA-01502: index 'ROL_ID_KEY' or partition of such index is in unusable state

热度:60   发布时间:2023-12-11 16:23:18.0

插入数据的时候报如下错误:
SQL 错误 [1502] [72000]: ORA-01502: index 'ROL_ID_KEY' or partition of such index is in unusable state
这个错误是由于索引失效造成的,重建索引后,问题就解决了。

过程如下:

  • 检查索引状态
select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='ROL_ID_KEY';INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_TYPE  STATUS
------------------------------ --------------------------- ------------------------------ ----------- --------
ROL_ID_KEY                           NORMAL                      DATA_DYNAMIC                   TABLE       UNUSABLE

这时索引已经是“UNUSABLE”

  • 设置skip_unusable_indexes=false,是为了不跳过失效索引
alter session set skip_unusable_indexes=false;Session altered.
  • 重建这个失效的索引 alter index ROL_ID_KEY rebuild;
alter index ROL_ID_KEY rebuild;Index altered.
  • 查询索引状态
select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='ROL_ID_KEY';
INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_TYPE  STATUS
------------------------------ --------------------------- ------------------------------ ----------- --------
ROL_ID_KEY                           NORMAL                      DATA_DYNAMIC                   TABLE       VALID

此时索引状态已经改为‘VALID’,错误解决。现在执行sql,插入数据就不会报错了。

  相关解决方案