ORA-01400: cannot insert NULL into (column) (insertion de NULL impossible dans la colonne)
OracleQue signifie cette erreur ?
Une valeur NULL a été insérée dans une colonne soumise à une contrainte NOT NULL, ou affectée à celle-ci. Un champ obligatoire ne peut pas rester vide.
Cause
Aucune valeur fournie pour une colonne obligatoire dans un INSERT, UPDATE mettant la colonne à NULL, aucun DEFAULT défini pour la colonne, ou valeur vide provenant d'une sous-requête/de l'application.
Comment la corriger
Fournissez une valeur valide pour la colonne indiquée dans le message d'erreur. Définissez une valeur par défaut pertinente pour la colonne : ALTER TABLE my_table MODIFY (my_column DEFAULT 0); (DEFAULT ne s'applique que lorsque la colonne est entièrement omise de l'INSERT ; pour les valeurs NULL envoyées explicitement, utilisez DEFAULT ON NULL en 12c+ : ALTER TABLE my_table MODIFY (my_column DEFAULT ON NULL 0);) Si la règle n'est pas réellement obligatoire, supprimez la contrainte : ALTER TABLE my_table MODIFY (my_column NULL); Validez les valeurs vides dans l'application avant de les envoyer.
Autres entrées pour ce moteur
- library cache lockAttente : contention sur un handle d'objet du library cache (sérialisation parse/DDL)
- 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-02291integrity constraint violated - parent key not found (contrainte d'intégrité violée : clé parente introuvable)
- 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ë)