ORA-02291: integrity constraint violated - parent key not found (contrainte d'intégrité violée : clé parente introuvable)
OracleQue signifie cette erreur ?
Une contrainte de clé étrangère a été violée. Aucune ligne parente correspondant à la valeur insérée dans la table enfant n'a été trouvée ; autrement dit, l'enregistrement référencé n'existe pas.
Cause
INSERT/UPDATE référençant un enregistrement parent inexistant, ligne de la table parente pas encore insérée, mauvais ordre de chargement (enfant avant parent), ou correspondance en échec en raison de différences de casse ou d'espaces.
Comment la corriger
Insérez d'abord l'enregistrement concerné dans la table parente, puis dans la table enfant. Vérifiez que la référence existe : SELECT * FROM parent_table WHERE key_col = value; Lors des chargements en masse, traitez les tables dans le bon ordre (parent d'abord). Pour trouver la ligne fautive, comparez la valeur de la table enfant avec la table parente à l'aide de NOT IN / d'une anti-jointure.
Autres entrées pour ce moteur
- ORA-00604error occurred at recursive SQL level (erreur au niveau du SQL récursif)
- ORA-01438value larger than specified precision allowed for this column (valeur supérieure à la précision autorisée pour la colonne)
- ORA-01400cannot insert NULL into (column) (insertion de NULL impossible dans la colonne)
- ORA-02292integrity constraint violated - child record found (contrainte d'intégrité violée : enregistrement enfant trouvé)
- ORA-00979not a GROUP BY expression (n'est pas une expression GROUP BY)
- ORA-00918column ambiguously defined (colonne définie de façon ambiguë)
- ORA-06550line/column PLS-... PL/SQL compilation error (erreur de compilation PL/SQL)