Teradata如何编译不可打印的字符?

时间:2015-10-15 01:35:10

标签: teradata

Teradata为新行定义了一些特殊字符,例如0D0A'XC。但是我在哪里可以找到所有这些字符的列表?它来自哪里?

我需要知道这些字符是如何翻译的。例如。如何获得回程等等

我试图谷歌这个,但找不到这样的列表

1 个答案:

答案 0 :(得分:0)

@Hillary,Teradata没有定义任何特殊字符;它们存在于所有数据库中。

示例:

CHR(9) = Tab key = '09'XC
CHR(10) = Enter key = '0A'XC
CHR(13) = Carriage Return = '0D'XC

有时我们需要将这些添加到我们的数据中,有时我们需要根据我们的要求删除它们。 通常它们来自我们从其他数据库进行迁移时以及当代码页之间发生任何变化时 两个系统或使用某些ETL工具加载到Teradata或从Windows加载文件到UNIX,反之亦然。

如果您的源表包含Unicode字符,并且您的目标表字段被定义为拉丁字符集,您将获得 不可翻译字符的问题。

Ex:最近在从oracle迁移到Teradata时,我们发现了一个奇怪的问题,比如char列 像'G'(空格和G)这样的数据,我们认为它是空间,但事实上它是CHR(0)。

关于翻译,我们需要删除它们或替换它们。大多数情况下使用两个UDF(我猜它们在TD 14之后可用)

oreplace : Select orepalce(col,CHR(0),'') from table(我为我的问题做了什么)。 translate_chk : TRANSLATE_CHK(‘abc’ USING UNICODE_TO_LATIN)

最后没有具体的清单,解决,加入你的学习并在你遇到问题时分享。

可能是某些Teradata专家会给你更多更新......:)