Personnellement, je veux qu'ils échouent, puis regarder les données. Je ne crois pas que vous devriez jamais envisager la troncature automatisée des données. Vous pourriez avoir besoin de rendre votre définition de champ plus grande. Vous ne saurez pas à moins d'inspecter visuellement les lignes qui échoueraient.
Exemple: Nous stockons des titres de discours. Supposons que vous aviez deux titres:
Comment lire un livre:
Comment lire un livre dans la baignoire sans se mouiller
Maintenant, si votre champ avait 10 caractères à la fois obtiendrait tronquée à la même chose. De plus, ce qu'ils ont tronqué n'aurait même pas de sens. Les deux diraient "Comment Rea" Maintenant, vous n'avez pas de différence entre deux titres très différents et ce que vous avez n'est pas correct de toute façon. Ajuster le champ pour stocker une plus grande quantité de caractères est clairement la bonne chose à faire. Cet exemple est stupide, mais garbage in, garbage out. Si vous tronquez les noms de personnes ou d'autres données critiques, vous finirez par rencontrer des problèmes car vous disposez de données erronées. J'ai vu cela se produire avec nos titres de discours, avec last_names, avec des adresses, des numéros de téléphone et beaucoup d'autres données. Si vous devez tronquer les données, il est plus que probable que vous stockez des données inutiles pour cet enregistrement. Soit les données ont besoin d'un nettoyage correct (comme supprimer le() - d'un numéro de téléphone si vous êtes conçu seulement stocker les numéros) avant d'importer dans les données de production ou le champ doit être plus grand.
Avez-vous essayé de convertir en un varchar d'une certaine longueur? Si elle est supérieure à la longueur spécifiée, elle couperait la fin. – TheTXI