9
votes

java.sql.sqxception: données tronquées pour la colonne 'mensuel' à la ligne 1 erreur

J'essaie de mettre à jour et d'enregistrer des données sur ma base de données à l'aide de mon interface graphique. Mon problème est que si je n'entre pas de données à certaines boîtes de texte que j'ai autorisées null sur ma base de données, je reçois ce genre d'erreur: java.sql.sqxception: données tronquées pour la colonne 'mensuel' à la ligne 1


3 commentaires

'mensuel' ? Utilisez-vous JDBC? Montrez votre requête s'il vous plaît.


Quel type de type de données votre revenu mensuel ??


J'ai utilisé le double comme type de données pour le revenu mensuel


3 Réponses :


18
votes

Typiquement, ce problème se produit lorsque vous mettez dans une donnée trop longue pour la colonne. Dans ce cas, quelles que soient les données que vous mettez à jour, le champ «mensuel» est trop long.


1 commentaires

Dans mon cas, j'ai eu une application héritée utilisant une ancienne version du connecteur MySQL. Après la mise à jour, cela a fonctionné.



10
votes

Une autre raison pour laquelle cette erreur pourrait se produire est lorsque le type de votre colonne est une énumération avec une liste limitée de valeurs, mais vous essayez d'insérer quelque chose qui n'appartient pas à cette liste.

Par exemple, si votre type de colonne est enum ('xxx', 'yyy', 'zzz') mais vous essayez d'insérer une valeur 'AAA' dans cette colonne, vous obtiendrez la même erreur.


1 commentaires

Merci d'abord, l'erreur n'a pas eu de sens, mais vous avez souligné que vous avez souligné que je pouvais trouver une faute de frappe sur mon script de création de table. gloire!



0
votes

Si vous utilisez Hibernate, une autre raison pourrait être manquante @Enuméated code> Annotation. ANNOTez-le avec le type de données souhaité comme l'exemple ci-dessous:

@Column(name="monthly_income")
@Enumerated(EnumType.STRING)
private MonthlyIncome monthlyIncome


0 commentaires