【发布时间】:2017-12-30 23:58:37
【问题描述】:
我正在使用 Informatica 接收从 .DAT 文件到我的 teradata 表的数据输入。但是它在垃圾字符问题上失败了。
我的解决方案 -
使用 REPLACE 函数删除垃圾字符。我试图在 NOTEPAD++ 中打开 .dat 文件以查看垃圾/坏字符是什么,但我看到了这个(样本很少)
Crea????ve Cloud
Mul????ple
它在 NOTEPAD++ 中的外观图片
它显示的文字是xEDxAFx80 xEDXB6X9F
我的问题 -
我不知道这些字符是什么意思。谁能告诉我 ASCII 代码或如何将其放入 REPLACE 函数中,以便我可以将其替换为另一个字符?
编辑-
Target column_name - COLUMN_NAME VARCHAR(240) CHARACTER SET UNICODE NOT CASESPECIFIC [Teradata Database]
Source Column_name - VARCHAR2(240) [ORACLE Database]
Oracle 中的数据 -
【问题讨论】:
-
您能否确定您在 .dat 文件中使用的是哪种
encoding格式?如果是这种情况,请尝试 UTF-8 -
奇怪,看起来
ti搞砸了,似乎不是有效的 Unicode。该列的数据类型和源编码是什么?char2hexint(col)返回的是什么? -
@dnoeth VARCHAR2(240) 是源数据类型。它是甲骨文系统。当我使用 char2hexint 时,我会得到一些十六进制数字。
-
Oracle 中的编码是 UTF-8 吗?在 Teradata、LATIN 或 UNICODE 中?当然
char2hexint返回十六进制数字,究竟返回什么?甲骨文中的数据是什么? -
@dnoeth 它是 Teradata 中的 UNICODE。这些记录未插入表中,因此无法检查 char2hexint 函数。添加了它在 Oracle 中的外观
标签: sql database teradata informatica