Teradata 如何编译不可打印的字符?
How does Teradata compile nonprintable characters ?
Teradata 定义了一些特殊字符,例如 0D0A'XC
用于换行等。但是我在哪里可以找到所有此类字符的列表?它来自哪里?
我需要知道这些字符是如何翻译的。例如。如何获得 return 马车等
我试过 google 这个,但是找不到这样的列表
@Hillary ,Teradata 没有定义任何特殊字符;它们存在于所有数据库中。
示例:
CHR(9) = Tab key = '09'XC
CHR(10) = Enter key = '0A'XC
CHR(13) = Carriage Return = '0D'XC
有时我们需要将它们添加到我们的数据中,有时我们需要根据我们的要求删除它们。
通常当我们从其他数据库进行迁移时以及代码页之间有任何更改时,它们就会出现
两个系统或使用某些 ETL 工具加载到 Teradata 或将文件从 windows 加载到 UNIX,反之亦然。
如果您的源 table 包含 Unicode 字符并且您的目标 table 字段定义为拉丁字符集,您将获得
untranslatable 个字符的问题。
例如:最近在执行从 oracle 到 Teradata 的迁移时,我们发现了一个奇怪的问题,例如 char 列有
像“G”(space 和 G)这样的数据,我们认为它是 space 但实际上它是 CHR(0) .
关于翻译,这取决于我们需要删除它们还是替换它们。大多数情况下使用两个 UDF(我猜它们在 TD 14 之后可用)
oreplace : Select orepalce(col,CHR(0),'') from table
(我为我的问题做了什么)。 translate_chk : TRANSLATE_CHK(‘abc’ USING UNICODE_TO_LATIN)
终于没有具体的列表了,有问题尽快解决,补充学习分享。
可能某些 Teradata 专家会给您更多更新...:)
Teradata 定义了一些特殊字符,例如 0D0A'XC
用于换行等。但是我在哪里可以找到所有此类字符的列表?它来自哪里?
我需要知道这些字符是如何翻译的。例如。如何获得 return 马车等
我试过 google 这个,但是找不到这样的列表
@Hillary ,Teradata 没有定义任何特殊字符;它们存在于所有数据库中。
示例:
CHR(9) = Tab key = '09'XC
CHR(10) = Enter key = '0A'XC
CHR(13) = Carriage Return = '0D'XC
有时我们需要将它们添加到我们的数据中,有时我们需要根据我们的要求删除它们。 通常当我们从其他数据库进行迁移时以及代码页之间有任何更改时,它们就会出现 两个系统或使用某些 ETL 工具加载到 Teradata 或将文件从 windows 加载到 UNIX,反之亦然。
如果您的源 table 包含 Unicode 字符并且您的目标 table 字段定义为拉丁字符集,您将获得 untranslatable 个字符的问题。
例如:最近在执行从 oracle 到 Teradata 的迁移时,我们发现了一个奇怪的问题,例如 char 列有 像“G”(space 和 G)这样的数据,我们认为它是 space 但实际上它是 CHR(0) .
关于翻译,这取决于我们需要删除它们还是替换它们。大多数情况下使用两个 UDF(我猜它们在 TD 14 之后可用)
oreplace : Select orepalce(col,CHR(0),'') from table
(我为我的问题做了什么)。 translate_chk : TRANSLATE_CHK(‘abc’ USING UNICODE_TO_LATIN)
终于没有具体的列表了,有问题尽快解决,补充学习分享。
可能某些 Teradata 专家会给您更多更新...:)