【问题标题】:Teradata SQL - Replacing special charactersTeradata SQL - 替换特殊字符
【发布时间】:2018-07-31 10:08:53
【问题描述】:

我正在为我的报告使用 Report Builder 3.0。但是,如果用户将结果导出到 Excel (xlsx) 而不是 Excel 2003 (xls),我的报告会运行,当文件打开时,他们会收到“非法 xml 字符”消息。

4 列包含“&”和/或“'”;所以我试图替换这些特殊字符;我认为这是导致问题的原因。

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

用这一行: oreplace(oreplace(j.journal_desc, '&', 'and'),'''','') AS "Jrnl 描述",

而且效果很好。但是,当我在第二行执行此操作时,我收到消息:“SELECT Failed. [9804] Response Row size or Constant Row size overflow”。

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

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

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

【问题讨论】:

    标签: sql replace teradata


    【解决方案1】:

    oreplace 和 otranslate 使用时,结果字符串的长度为 8000 个 unicode 字符集。每个 otranslate 的长度都会增加 8000。尝试转换为更小的长度应该可以解决问题。

     CAST(oreplace(journal_desc,'&','and') AS VARCHAR(100))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 2014-11-03
      • 2019-05-23
      • 2013-03-08
      相关资源
      最近更新 更多