2016-09-06 3 views
0

J'ai un SSIS package ce qui suit:lignes Redirect avec des erreurs de fichier plat Destination

  1. Une source OLE DB qui tire des données à partir d'une table via une commande SQL
  2. A destination de fichier plat qui stocke les données extrait de DB au format CSV
  3. Un gestionnaire de connexions de fichiers, pour la destination de fichier plat, qui est configuré utiliser la page de code "1252 (ANSI - I latine)"

Dans la table source, certaines données contiennent des caractères qui ne sont pas valides pour la page de codes 1252. Lorsque le package tente d'insérer ces données dans le fichier de destination, il génère une erreur dans l'étape Destination du fichier plat.

Je souhaite rediriger les lignes contenant des caractères non valides vers un fichier distinct. Si l'erreur se produisait dans le composant Source OLE DB, je pourrais utiliser le chemin d'erreur avec la configuration "Rediriger les lignes". Toutefois, étant donné que l'erreur se trouve dans le composant Destination du fichier plat et que ce composant n'a aucune sortie, je ne parviens pas à capturer ces lignes. Comment cela devrait-il être fait?

Répondre

1

Vous pouvez insérer un composant de conversion de données avant la destination du fichier plat, convertir votre champ de données en colonne 'copie de ...' et configurer la sortie d'erreur de conversion de données. Cela vous permet de capturer des lignes erronées avec son code d'erreur.
Veuillez noter qu'une telle conception filtre efficacement les lignes erronées du chemin DataFlow normal en redirigeant vers la sortie d'erreur.

+0

Cette approche a fonctionné pour moi. J'ai dû convertir les colonnes en DT_STR ((DT_STR, 50, 1252) MyColumn) pour que le composant Conversation de données génère des erreurs et les redirige vers mon fichier d'erreurs. –