Обсуждение: Cleaning text with function?
Currently I have a perl script that I use to cleanse text fields in a file for use in our mainframe. I would like to do this as a function and bypass using perl if possible. Is this possible? I do not have plperl installed on the database due to server restrictions. Example of current perl statement: while (<>) { # Streams the corrected text back to the original file s/¨/ /g; # Character replace s/ª/ /g; # Character replace s/`/ /g; # Character replace s/¡/ /g; # Character replace s/Ë/A/g; # Character replace s/Ò/ /g; # Character replace s/Ó/ /g; # Character replace s/æ/E/g; # Character replace s/ê/I/g; # Character replace s/ì/I/g; # Character replace s/ï/O/g; # Character replace print; # this goes to the temp filehandle, ARGVOUT, # not STDOUT as usual, so don't mess with it ! } TIA Patrick Hatcher Macys.Com Legacy Integration Developer
Patrick, > Currently I have a perl script that I use to cleanse text fields in a > file > for use in our mainframe. I would like to do this as a function and > bypass > using perl if possible. Is this possible? I do not have plperl > installed > on the database due to server restrictions. > Example of current perl statement: I'm afraid that you really need PL/Perl or PL/Tcl for this. While it would be possible to do the text replacement with PL/pgSQL or pglibq, it would be much, much slower -- basically, you'd need to loop through the text character-by-character and test each character for the correct types. If you want an example of this approach, search the archives of the SQL list for the STRIPNUMERIC function which I posted some time ago. Perl and Tcl are known for their superior text-processing capabilities for a reason. -Josh Berkus