Teradata SQL - 替换特殊字符

时间:2018-02-20 22:56:18

标签: sql replace teradata

我在报告中使用Report Builder 3.0。然而,我的报告运行,如果用户将结果导出到Excel(xlsx)而不是Excel 2003(xls),他们会得到一个非法的xml字符"文件打开时的消息。

其中4列包含"&"和/或" ' &#34 ;;所以我试图替换这些特殊字符;我相信这会导致这个问题。

我已尝试更新此行: j.journal_desc AS" Jrnl Description",

这一行: oreplace(j.journal_desc,'&','和'),''''')AS" Jrnl说明",

它工作正常。但是,当我在第二行执行此操作时,我收到消息:" SELECT Failed。 [9804]响应行大小或常量行大小溢出"。

我已经尝试过" otranslate"它适用于2列。但是,当我在第3列上尝试它时,我得到相同的溢出消息。

是否可以在多个列上使用oreplace或otranslate?难道我做错了什么?有没有更好的方法来替换这些特殊字符?吨

感谢您的帮助......

1 个答案:

答案 0 :(得分:2)

oreplace和otranslate在使用时,结果字符串将具有8000个unicode字符集。每个otranslate将使8000更长。尝试转换为更小的长度应该解决问题。

 CAST(oreplace(journal_desc,'&','and') AS VARCHAR(100))
相关问题