SSIS – Conversion de DT_TEXT (longueur de 11 000 caractères) en DT_STR et découpage à 1 000 caractères

Je veux lire datatables à partir du file text (.csv), tronquer l'un de la colonne à 1000 caractères et pousser dans la table SQL à l'aide du package SSIS.

L'input (DT_TEXT) a une longueur de 11 000 caractères mais mon défi est …

  • SSIS peut convertir en (DT_STR) uniquement si la longueur maximale est de 8 000 caractères.
  • Les opérations de string ne peuvent pas être effectuées sur Stream (type de données DT_TEXT)

Vous avez une solution de contournement / solution maintenant; Je tronque le text dans Source file plat et sélectionné l'option Ignorer l'erreur;

S'il vous plaît partager si vous trouvez une meilleure solution!

FYI: Tronquer8000PlusCharsInSSIS

Pour aider quelqu'un d'autre qui trouve cela, j'ai appliqué un concept similaire plus généralement dans un stream de données lors de la consommation d'un stream de text [DT_TEXT] dans une tâche de transformation de colonne dérivée pour le transformer en type [DT_WSTR] à ma longueur définie. Cela appelle plus facilement la conversion en cours.

Expression: (DT_WSTR, 1000) (DT_STR, 1000,1252) myLargeTextColumn
Type de données: string Unicode [DT_WSTR]
Longueur: 1000

* J'ai utilisé la page de codes 1252 car mon DT_TEXT est codé en UTF-8.

Pour cette colonne dérivée, j'ai également mis TruncationRowDisposition à RD_IgnmoreFailure dans l'éditeur avancé (ou peut être fait dans la sortie Configurer l'erreur, en définissant Troncature sur "Ignorer l'échec")

(Je postrais des images mais apparemment je dois augmenter mon représentant)