web-dev-qa-db-fra.com

Problèmes d'exportation de longues colonnes vers un fichier plat à l'aide de SSIS

Nous avons un package SSIS qui va générer des fichiers à utiliser par Google Big Query. Les fichiers seront des fichiers .tsv compressés.

L'une des exigences est que le fichier soit UTF-8. Nous l'avons défini dans la destination du fichier plat de sorte qu'il soit 65001 - UTF-8. Après cela, les fichiers gzip générés sont correctement consommés dans Big Query.

Le problème est maintenant que certains champs ont des longueurs de caractères allant jusqu'à 21 000 caractères. Le DT_WSTR ne permet pas cette taille.

La modification du champ de destination du fichier plat en DT_NTEXT génère le message d'erreur suivant

Erreur: 0xC020802E à 14_3 Flux de données dans MyTSV, destination de fichier plat MyDestination [12]: Le type de données pour "destination de fichier plat MyDestination.Inputs [entrée de destination de fichier plat] .Columns [Value]" est DT_NTEXT, qui n'est pas pris en charge avec ANSI des dossiers. Utilisez plutôt DT_TEXT et convertissez les données en DT_NTEXT à l'aide du composant de conversion de données.

Toutes les solutions que j'ai lues impliquent de reconvertir en DT_WSTR ou de changer la page de codes en 1252, ce qui n'est pas une option en raison de l'exigence de la page de codes Big Query et de la longueur des données. Existe-t-il une autre solution à ce problème?

4
Alf47

Essayez de cliquer sur la case à cocher Unicode

Essayez la page de codes 65001 suivante et la case à cocher Unicode, cela m'a débarrassé du message d'erreur. J'espère que nous utilisons des versions similaires de SSDT. Ma version est 15.

Mais d'abord, double-cliquez sur votre destination de fichier plat, puis cliquez sur le bouton Mettre à jour ...

enter image description here

enter image description here

6
Sting