ORA-02291: integrity constraint violated - parent key not found (violación de integridad: clave padre no encontrada)
Oracle¿Qué significa?
Se violó una restricción de clave foránea. No se encontró ninguna fila padre correspondiente al valor insertado en la tabla hija; es decir, el registro referenciado no existe.
¿Por qué ocurre?
Un INSERT/UPDATE que referencia un registro padre inexistente, la fila de la tabla padre aún no insertada, un orden de carga incorrecto (hijo antes que padre) o la coincidencia falla por diferencias de mayúsculas o espacios en blanco.
Cómo solucionarlo
Inserte primero el registro correspondiente en la tabla padre y luego en la tabla hija. Verifique que la referencia existe: SELECT * FROM parent_table WHERE key_col = value; En cargas masivas, procese las tablas en el orden correcto (primero el padre). Para encontrar la fila infractora, compare el valor de la tabla hija con la tabla padre usando NOT IN / un anti-join.
Más entradas de este motor
- ORA-00604error occurred at recursive SQL level (error en el nivel de SQL recursivo)
- ORA-01438value larger than specified precision allowed for this column (valor mayor que la precisión permitida para la columna)
- ORA-01400cannot insert NULL into (column) (no se puede insertar NULL en la columna)
- ORA-02292integrity constraint violated - child record found (violación de integridad: se encontró un registro hijo)
- ORA-00979not a GROUP BY expression (no es una expresión GROUP BY)
- ORA-00918column ambiguously defined (columna definida de forma ambigua)
- ORA-06550línea/columna PLS-... error de compilación PL/SQL