DB2/iSeries SQL nettoyer CR/LF, onglets, etc

J'ai besoin de trouver et de nettoyer les sauts de ligne, retour chariot, tabulation et "SOUS"-caractères dans un ensemble de 400k+ chaîne des enregistrements, mais ce DB2 environnement est à prendre un péage sur moi.

Pensais que je pouvais faire quelque recherche et de la remplacer par la REPLACE() et CHR() fonctionne, mais il semble CHR() n'est pas disponible sur ce système (Erreur: CHR *LIBL type *N n'est pas trouvé). Travailler avec \t, \r, \n etc ne semble pas fonctionner non plus. Les caractères peuvent être au moyen de chaînes ou à la fin de l'.

DBMS = DB2
System = iSeries
Language = SQL
Encoding = Not sure, possibly EBCDIC

Tous les conseils sur ce que je peux faire avec ça?

Vous avez toujours la possibilité d'exporter les données, de processus et de le remettre. J'ai fait cela avant. J'ai utilisé Squirrel SQL pour déplacer des tables DB2 vers MySQL pour tester, avant de revenir à DB2 dans la production (Plusieurs Gigaoctets). Des problèmes avec l'utilisation de l'écureuil: l'absence de progrès indication, et d'avoir besoin de tenir la totalité de la table dans la mémoire, y compris SLQ balisage de sorte que vous aurez besoin d'augmenter vous Java limites de la mémoire. Dépend de la taille de la chaîne, mais quelques Concerts espérons-le, devrait suffire. Aussi, cela doit être fait localement ou de la bande passante sera probablement un problème.
Oh et encore une chose... à cause de la différence dans les mots clés et en citant vous pourriez avoir besoin pour appliquer un couple d'expressions régulières avant d'être importé. Vraiment rien de recherche et de remplacement dans un bon éditeur de texte ne devrait pas être en mesure de gérer (en supposant qu'il peut gérer au moins 400 ko de données!) Oh Écureuil va même écrire la définition de la table pour vous, trop.

OriginalL'auteur Simon Fredriksson | 2011-09-27