Directorio de artículos
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)
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!