86 votes

Erreurs dans SQL Server lors de l'importation d'un fichier CSV malgré l'utilisation de varchar(MAX) pour chaque colonne

J'essaie d'insérer un gros fichier CSV (plusieurs gigaoctets) dans la base de données de l'entreprise. SQL Server mais une fois que j'ai passé en revue les Import Wizard et enfin essayer d'importer le fichier, je reçois le rapport d'erreur suivant :

  • Exécution (Erreur) Messages

Erreur 0xc02020a1 : Tâche de flux de données 1 : La conversion des données a échoué. La conversion de données pour la colonne ""Title"" a renvoyé la valeur d'état 4 et l'état texte "Le texte a été tronqué ou un ou plusieurs caractères n'ont pas de correspondance dans la page de code cible ".

( SQL Server Import and Export Wizard )

Erreur 0xc020902a : Data Flow Task 1 : La "Source - Train_csv.Outputs[Flat File Source Output].Columns["Title"]" a échoué car une troncature s'est produite, et la disposition de la ligne de troncature sur "Source - Train_csv.Outputs[Flat File Source Output].Columns["Title"]" spécifie un échec sur la troncature. Une erreur de troncature s'est produite sur l'objet l'objet spécifié du composant spécifié.

( SQL Server Import and Export Wizard )

Erreur 0xc0202092 : Data Flow Task 1 : Une erreur s'est produite lors du traitement du fichier " C:\Train.csv "sur la ligne de données 2.

( SQL Server Import and Export Wizard )

Erreur 0xc0047038 : Tâche de flux de données 1 : Code d'erreur SSIS DTS_E_PRIMEOUTPUTFAILED. La méthode PrimeOutput sur la Source - Train_csv a renvoyé le code d'erreur 0xC0202092. Le composant a renvoyé un code d'erreur lorsque le moteur de pipeline a appelé PrimeOutput(). La signification du code d'échec est définie par le composant, mais l'erreur est fatale et le pipeline a cessé de s'exécuter. Il peut y avoir des messages d'erreur affichés avant cela, avec plus d'informations sur l'échec.

( SQL Server Import and Export Wizard )

J'ai d'abord créé la table dans laquelle j'insère le fichier, et j'ai défini chaque colonne pour qu'elle contienne varchar(MAX). Je ne comprends donc pas comment je peux encore avoir ce problème de troncature. Que dois-je faire de mal ?

0voto

Tapas Points 1

Numéro : Le fournisseur Jet OLE DB lit une clé de registre pour déterminer combien de lignes doivent être lues pour deviner le type de la colonne source. Par défaut, la valeur de cette clé est 8. Par conséquent, le fournisseur scanne les 8 premières lignes des données source pour déterminer les types de données des colonnes. Si un champ ressemble à du texte et que la longueur des données est supérieure à 255 caractères, la colonne est saisie comme un champ mémo. Ainsi, s'il n'y a pas de données dont la longueur est supérieure à 255 caractères dans les 8 premières lignes de la source, Jet ne peut pas déterminer avec précision la nature du type de données. Comme la longueur des données des 8 premières lignes de la feuille exportée est inférieure à 255, Jet considère la longueur de la source comme VARCHAR(255) et est incapable de lire les données de la colonne ayant une longueur supérieure.

Fixer : La solution consiste simplement à trier la colonne des commentaires par ordre décroissant. A partir de 2012, nous pouvons mettre à jour les valeurs dans l'onglet Advance de l'assistant d'importation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X