Sim*_*son 4 sql db2 replace ibm-midrange
我需要在一组400k +字符串记录中找到并清理换行符,回车符,制表符和"SUB"字符,但这个DB2环境对我造成了影响.
以为我可以进行一些搜索并替换为REPLACE()和CHR()函数,但似乎CHR()在此系统上不可用(错误:CHR未找到*LIBL类型*N).使用\ t,\ t \,\n等似乎也无法正常工作.字符可以位于字符串的中间或结尾处.
DBMS = DB2
System = iSeries
Language = SQL
Encoding = Not sure, possibly EBCDIC
Run Code Online (Sandbox Code Playgroud)
关于我能用这个做什么的任何提示?
我用这个SQL来找到x'25'和x'0D':
SELECT
<field>
, LOCATE(x'0D', <field>) AS "0D"
, LOCATE(x'25', <field>) AS "25"
, length(trim(<field>)) AS "Length"
FROM <file>
WHERE LOCATE(x'25', <field>) > 0
OR LOCATE(x'0D', <field>) > 0
Run Code Online (Sandbox Code Playgroud)
我用这个SQL替换它们:
UPDATE <file>
SET <field> = REPLACE(REPLACE(<field>, x'0D', ' '), x'25', ' ')
WHERE LOCATE(x'25', <field>) > 0
OR LOCATE(x'0D', <field>) > 0
Run Code Online (Sandbox Code Playgroud)
如果要清除特定字符,例如回车符 (EBCDIC x'0d') 和换行符 (EBCDIC x'25'),您应该在 EBCDIC 中找到翻译后的字符,然后使用 TRANSLATE() 函数将它们替换为空格。
如果您只想删除无法显示的字符,请查找 x'40' 以下的任何内容。
| 归档时间: |
|
| 查看次数: |
14274 次 |
| 最近记录: |