top of page
Entradas destacadas

ORA-00600 [kkdlReadOnDiskDefVal: bad defValLen] (Solución)

Algunas ocasiones los errores ORA-600 no son del todo útiles para resolver diagnosticar problemas, esta entrada tiene como objetivo presentar una explicación sobre el Bug 21866762, presentado en las versiones de Oracle anteriores a 12.2.

Identificación del problema

Este error principalmente aparece cuando re dimensionamos el tamaño o cantidad de caracteres que puede almacenar una columna de una tabla, de menor a mayor por medio de un DDL y la columna tiene valores por default mayores al tamaño de la columna, al hacer esto los meta-datos en el diccionario de datos, no son actualizados de la forma correcta, por lo que el diccionario registra valores distintos para el tamaño de la columna y valores por default, para constatar esto, el siguiente query nos permitirá obtener la columna con problemas:

 

select owner, object_name, object_type, object_id, c.name column_name, c.intcol#, lengthb(e.binarydefval) default_value_length, c.length column_length from sys.ecol$ e, sys.col$ c, dba_objects o where e.tabobj# = c.obj# and e.colnum = c.intcol# and bitand(c.property , 1073741824) = 1073741824 and lengthb(e.binarydefval) > c.length and o.object_id = e.tabobj#;

 

Lo que en caso de tener esta inconsistencia en diccionario, nos regresará un registro o más registros con distintos valores en las columnas default_value_length y column_length.

También si realizamos una consulta en los datos de esa tabla, el gestor retornara el error

 

ORA-00600: código de error interno, argumentos: [kkdlReadOnDiskDefVal: bad defValLen], [a], [b], [], [], [], [], [], [], [], [], []

 

Del cual su interpretación es la siguiente:

ORA-00600: Código de error genérico de BDD.

[a] : Número default de bytes configurado para esa columna

[b]: Longitud de la columna

kkdl : Búsqueda del diccionario compilación del kernel

Impacto y solución

Todas las tablas que tengan este problema en una o varias columnas, no permitirán realizar la consulta, modificación, actualización o inclusive borrado de la columna, por lo que todas las sesiones que intenten realizar estas acciones, serán terminadas de inmediato y será registrado el error en el alert<SID>.log.

Tampoco será posible exportar, respaldar o utilizar esa tabla por medio de datapump y RMAN.

De acuerdo a la nota técnica de MOS para el Bug 21866762, este problema es solucionado en el r2 de 12c o puede aplicarse un parche dependiendo de la plataforma exceptuando para windows, para el cual será necesario instalar el bundle patch

Entradas recientes
Archivo
Buscar por tags
Síguenos
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page