El valor de la clave de índice ORA-08102 no existe en el manejo de fallas de Oracle

Descripción del problema

Los clientes de Hong Kong tienen un conjunto de sistemas globales desarrollados en Japón, y la base de datos que utiliza es Oracle Database Standard Edition 10.2.0.5. El error lanzado en el lado del sistema es el siguiente:

Ora-08102:index key not found, obj# 145664, file 12, block 3326692(2)

Inserte la descripción de la imagen aquí

análisis del problema

  • Verifique la información del objeto problemático
col object_name format a15;
col owner format a10;
select o.owner, o.object_name, o.object_id, o.object_type from dba_objects o where o.object_id = 145664;

Salida de registro:

OWNER      OBJECT_NAME                OBJECT_ID OBJECT_TYPE
---------- ------------------------- ---------- -------------------
XXXXXXX IDX_CR_PK_DIM_CARTON          145664 INDEX
  • Comprobación de la declaración del índice DDL
set long 2000
select dbms_metadata.get_ddl('INDEX','IDX_CR_PK_DIM_CARTON','XXXXXX') from dual;

Salida de registro:

DBMS_METADATA.GET_DDL('INDEX','IDX_CR_PK_DIM_CARTON','XXXXXX')
--------------------------------------------------------------------------------

  CREATE INDEX "SILOS_LIVE"."IDX_CR_PK_DIM_CARTON" ON "XXXXXX"."PACKING_CART
ON_DIMENSION" (NVL("CARTON_NO",' '))    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPU
TE STATISTICS    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147
483645   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS"

A través de MOS, se encuentra que los índices de funciones NVL a menudo tienen problemas, como que no se encuentran valores clave.

solución

1. Reconstruir el índice

alter index IDX_CR_PK_DIM_CARTON rebuild;

2. Verifique la necesidad del índice

Si no es necesario utilizar este índice de función NVL, ¡bórrelo!

Supongo que te gusta

Origin blog.csdn.net/weixin_38623994/article/details/107169062
Recomendado
Clasificación