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))