2017-03-21 1 views
0

J'ai un problème J'ai besoin d'aide pour résoudre. L'entreprise pour laquelle je travaille utilise Informatica cloud pour faire beaucoup de leur ETL dans AWS et autres services.Comment avoir un délimiteur multi-caractères dans Informatica Cloud?

Nous avons reçu un fichier plat par l'entreprise où le délimiteur de champ est "~ |" Actuellement, au meilleur de ma connaissance, informatica n'accepte qu'un seul délimiteur de caractères.

Only a Single Character. How do I make it Multiple?

Est-ce que quelqu'un sait comment surmonter cela?

Répondre

0

Informatica ne peut pas lire composite delimiters.

D'abord, vous pouvez charger chaque ligne sous la forme d'une longue chaîne unique dans une transformation d'expression . Dans ce cas, le caractère délimiteur doit être réglé sur \ 037, je n'ai pas vu ce caractère (ASCII Unit Separator) utilisé au moins depuis 1982. Ensuite, utilisez des invocations répétitives de InStr() dans l'EXP pour identifier les positions de ces caractères double pipe et diviser chaque ligne en champs en utilisant SubStr().

Deuxième (plus facile dans la cartographie, plus de travail à la session), vous pouvez alimenter le fichier dans une certaine utilité qui remplace les doubles caractères pipe par le caractère ASCII 31 (le séparateur Unité mentionné ci-dessus); la session doit être configurée de sorte qu'elle lise la sortie de cet utilitaire (type de fichier d'entrée = commande au lieu de Fichier). La définition source doit alors contenir le délimiteur de champs \ 037 au lieu de n'importe quel caractère de tuyau ou plus.