2008-11-04 13 views
4

L'option de fichier plat rectiligne irrégulier est idéale pour un seul champ final terminé avec un CRLF, mais lorsqu'un nombre quelconque de champs de fin qui sont vides sont supprimés et la ligne terminée au début avec CRLF, je n'ai trouvé aucune alternative dans SSIS quelques colonnes avec une seule colonne "REMAINDER" et ensuite utilisé une transformation de colonne dérivée avec des opérations SUBSTRING pour extraire les colonnes "facultatives" une par une.Comment traiter les fichiers texte droits irréguliers avec de nombreuses colonnes supprimées dans SSIS ou un autre outil?

Une possibilité qui m'est apparue est s'il y a un moyen de passer la ligne à travers un composant "padder" dans SSIS avant que le gestionnaire de connexion ne s'en empare. Ensuite, vous pouvez obtenir tous les avantages de l'utilisation du gestionnaire de connexions pour configurer les longueurs de colonnes entrantes. Je pourrais toujours créer un programme externe (ou un flux de données SSIS complètement séparé) pour passer un fichier à travers lequel pad chaque ligne avec des espaces (et avec ragged right - ajoutant juste le même nombre minimum d'espaces pour tenir compte de tous les champs supprimés à chaque la ligne suffirait), mais cela semble être un gaspillage d'espace disque et nécessite aussi que le fichier soit lu (et écrit) complètement une fois de plus.

Alternativement, peut-être il y a un composant de source de données tiers qui sera simplement NULL ou vide et colonnes automatiquement si la ligne est terminée prématurément.

D'autres options?

Répondre

2

Je pense que votre solution proposée semble raisonnable. L'espace disque est bon marché. Il est parfaitement acceptable d'avoir un processus en deux étapes dans lequel vous nettoyez la mise en forme avant d'importer les données.

1

Utilisez un composant de script pour séparer la colonne en tant que source de données.

Questions connexes