Teradata SQL - 替换特殊字符
Teradata SQL - Replacing special characters
我正在使用 Report Builder 3.0 制作报告。我的报告运行,但是,如果用户将结果导出到 Excel (xlsx) 而不是 Excel 2003 (xls),他们会在文件打开时收到 "illegal xml character" 消息。
4 列包含“&”和/或“'”;所以我试图替换这些特殊字符;我认为这是导致问题的原因。
我尝试更新这一行:
j.journal_desc AS "Jrnl Description",
用这一行:
oreplace(oreplace(j.journal_desc, '&', 'and'),'''','') AS "Jrnl Description",
而且效果很好。但是,当我在第二行执行此操作时,我收到消息:"SELECT Failed. [9804] Response Row size or Constant Row size overflow".
我试过 "otranslate" 并且它适用于 2 列。但是,当我在第 3 列尝试时,我收到了相同的溢出消息。
是否可以在多个列上使用 oreplace 或 otranslate?难道我做错了什么?有没有更好的方法来替换这些特殊字符? t
感谢帮助......
使用 oreplace 和 otranslate 时,结果字符串的长度为 8000 unicode characterset.each otranslate 的长度将增加 8000。尝试转换为更小的长度应该可以解决问题。
CAST(oreplace(journal_desc,'&','and') AS VARCHAR(100))
我正在使用 Report Builder 3.0 制作报告。我的报告运行,但是,如果用户将结果导出到 Excel (xlsx) 而不是 Excel 2003 (xls),他们会在文件打开时收到 "illegal xml character" 消息。
4 列包含“&”和/或“'”;所以我试图替换这些特殊字符;我认为这是导致问题的原因。
我尝试更新这一行: j.journal_desc AS "Jrnl Description",
用这一行: oreplace(oreplace(j.journal_desc, '&', 'and'),'''','') AS "Jrnl Description",
而且效果很好。但是,当我在第二行执行此操作时,我收到消息:"SELECT Failed. [9804] Response Row size or Constant Row size overflow".
我试过 "otranslate" 并且它适用于 2 列。但是,当我在第 3 列尝试时,我收到了相同的溢出消息。
是否可以在多个列上使用 oreplace 或 otranslate?难道我做错了什么?有没有更好的方法来替换这些特殊字符? t
感谢帮助......
使用 oreplace 和 otranslate 时,结果字符串的长度为 8000 unicode characterset.each otranslate 的长度将增加 8000。尝试转换为更小的长度应该可以解决问题。
CAST(oreplace(journal_desc,'&','and') AS VARCHAR(100))