Resolución de problemas en ORA-30926 Errores? (Doc ID 471956,1)
1) Identificar la sentencia anómala
conjunto sesión alter ‘30926 traza nivel de nombre errorstack 3’ eventos;
o
sistema alter establece eventos ‘nombre 30,926 traza errorstack off’;
y mire si hay archivos .trc en UDUMP cuando esto ocurra.
2) Después de encontrar la instrucción SQL, verifique si es correcta (tal vez usando Explain Plan o tkprof para verificar el plan de ejecución de la consulta) y analice o calcule las estadísticas en las tablas correspondientes si esto no se ha realizado recientemente. Los índices de reconstrucción (o caída/recreación) también pueden ser útiles.
3.1) ¿La instrucción SQL es MERGE? evalúa los datos devueltos por la cláusula USING para garantizar que no haya valores duplicados en la unión. Modificar la instrucción de fusión para incluir una cláusula determinista donde
3.2) ¿Es esta una declaración de actualización a través de una vista? Si es así, intente llenar el resultado de la vista en una tabla e intente actualizar la tabla directamente.
3.3) ¿Hay un gatillo en la mesa? Intenta inhabilitarlo para ver si aún falla.
3.4) ¿La instrucción contiene una vista no fusionable en una 'Subconsulta IN'? Esto puede hacer que se devuelvan filas duplicadas si la consulta tiene una cláusula "FOR UPDATE". Consulte el error 2681037
3.5) ¿La tabla tiene columnas sin usar? Dejar caer estos puede prevenir el error.
4) Si la modificación del SQL no soluciona el error, el problema puede estar en la tabla, especialmente si hay filas encadenadas. 4.1) Ejecute la instrucción 'ANALYZE TABLE VALIDATE STRUCTURE CASCADE' en todas las tablas utilizadas en el SQL para ver si hay corrupciones en la tabla o sus índices. 4.2) Verifique y elimine cualquier FILA ENCADENADA o migrada en la mesa. Hay formas de minimizar esto, como la configuración correcta de PCTFREE. Menciones 122.020,1 - Fila de encadenamiento y Migración 4.3) Si la tabla es, además Índice organizado, ver: Nota 102932.1 - Seguimiento filas encadenadas en IOT
10x Nice answer. Me ayudó –
De mí también .. directamente en la cabeza – TonyP
Esta es probablemente la razón por la que otros enfoques (para mí) también me devolvieron otros errores (como 'procedimiento, función, paquete o tipo no está permitido aquí' y 'No se puede modificar columna que se correlaciona con un error de tabla no preservado por clave al intentar insertar en una vista '). ~ Si ayuda a alguien más, recibí el mismo error incluso después de agregar distinto hasta que reordené las combinaciones de mi consulta interna, así que comencé con la tabla que recibía más de una fila y se unió desde allí ... Si eso tiene sentido. – jinglesthula