2015-12-24 1 views
0

Je me demande si j'ai besoin d'implémenter une solution à la fin Datastage et/ou Oracle 11g DB pour résoudre le problème de l'existence de caractères non-ascii dans les descriptions. Étant donné que les bases de données utilisent des jeux de caractères différents, la conversion d'un ensemble en un autre convertit parfois un seul caractère non-ascii en plusieurs caractères, provoquant une erreur de troncature.IBM datastage 8.7 script pour supprimer des caractères spéciaux oracle 11g

Description de l'échantillon ": ¿À quelle date est-ce arrivé ¿xxxxx: ¿mercredi, il aurait été ....." « : a dû aller chez le médecin yesterday.¿ xxxxxx: ¿I¿ Je vais juste vous dire d'indiquer votre "

Idéalement (pour plus long terme) je voudrais remplacer avec le caractère correspondant, à savoir certaines citations étendues devraient devenir une citation régulière.

Pour court terme, j'ai un exemple de script écrit qui remplace essentiellement tous les caractères spéciaux avec un espace -

UPDATE rcmain.rc_description 
SET desc_description = REPLACE(desc_description, CHR(191), ' ') 
WHERE desc_description LIKE '%' || CHR(191) || '%' 

à partir du script ci-dessus, je devais créer un DataStage d'emploi « ctlCleanseSourceFile » qui appelle un script shell UNIX "Replace_extended_characters.sh" pour supprimer les caractères spéciaux des fichiers XML. Cela peut être fait une fois que le fichier XML est fusionné en un seul fichier.

Modifiez l'un des exemples de fichiers joints pour créer le script shell.

Il doit: Utiliser l'instruction sed dans les exemples, Stocker une sauvegarde du fichier original avant le remplacement. Enregistrer cela dans le même répertoire d'archives que les autres fichiers pour l'exécution & rapport sur les caractères remplacés si possible.

Existe-t-il une meilleure façon de gérer cette situation et de ne pas utiliser l'espace pour le champ de description.

"Toutes mes excuses pour le long post"

Répondre

0

Toutes mes excuses, c'est une réponse rapide;

Quels sont vos paramètres NLS? J'ai eu un problème comme vous lire XML et le changement de l'étape source NLS à Windows 1252 résolu le problème «caractère invalide» que j'avais (la source des fichiers était un serveur Windows mais Datastage était sur Unix donc en utilisant UTF-8)

+0

Merci pour la réponse de retour et de conseiller, va essayer de modifier les paramètres de Windows 1252 et voir si cela fonctionne l'un de ses charmes. – abby

+0

Salut Dan, Pouvez-vous indiquer si les modifications apportées à la base de données sous-jacente affecteront directement les données ou est-ce que je devrai recharger les données à nouveau pour les traiter avec les nouveaux paramètres? – abby

+0

Abby, je n'avais pas besoin d'apporter des modifications à la base de données juste le noeud source dans Datastage, en changeant les paramètres NLS sur cela signifiait qu'il a lu le XML correctement pour moi. Seriez-vous capable de conseiller ce que le noeud source est (connecteur oracle peut-être?) –