【问题标题】:Unable to visualize junk character无法可视化垃圾字符
【发布时间】: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


【解决方案1】:

您可以使用 xml 解析器或 xml 目标来解析字符,垃圾字符将被转换为其十六进制表示,因此不会出错。但是,Nico 在这里提供了一个更简单的解决方案 https://network.informatica.com/thread/20642

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-28
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多