1

问号“?” 仅出现在要插入的第一行的第一个字段的前面。
这一次,我将 ftp 上传文件类型更改为 text/ascii(而不是二进制),这似乎解决了问题。但后来它又回来了。服务器操作系统是 aix5.3。
数据阶段为 7.5x2。
甲骨文是 11g。

我使用 ue 将文件保存为 utf-8,使用 unix 结束标记。有没有人以前得到过这个东西?

4

2 回答 2

1

问号本身意义不大,因为它可能只是数据库无法识别的某些特殊字符的“掩码”。您没有提供有关您的环境的任何详细信息,所以我在这里的意见只是一个猜测。我希望它能给你一点光明。

文本文件是如何创建的?如果它是在 Windows 环境中创建的文件,那么由于刹车线 {CR}{LF} 字符,您很可能会有这样的字符。

oracle 表的数据类型是什么?Char 数据类型将根据字段的大小“填充”每个位置,我建议在这种情况下使用 varchar 代替。

如果不是这种情况,我会以十六进制模式编辑文件并检查此特定字符的 Ascii 代码,然后使用 TRIM(如果并行)或转换(如果服务器)替换字符。

转换函数将是这样的:

转换(字符([ascii_char_number]),'',[your_string])

或者,如果您的工作是并行工作,您可以使用 Trim 功能

修剪([你的字符串],[ascii_char_number],'L')

选项“L”将删除所有前导字符。您可能需要调整此功能以满足您的需要。如果您不熟悉 TRIM 功能,可以在 datastage 在线文档中找到更多详细信息。

这样做时我要给出的唯一警告是,您将从原始数据源中删除数据,因此请确保在操作这样的文件时没有删除任何有效信息,因为这不是非常推荐的ETL 专家之间的练习。

有什么问题,给我留言。如果可以的话,很乐意提供帮助。

干杯

于 2013-02-06T04:19:48.707 回答
1

我有一个类似的问题,无法打印的字符显示为“?” 并且 datastage 在处理这些记录时会发出警告。我可以不显示那些不可打印的字符,所以我使用了函数 ICONV 将这些字符转换为可打印的字符。有多个选项,我选择了一个将它们转换为“。”的选项。这对我有用。以下 IBM 页面提供了更多详细信息:

https://www-01.ibm.com/support/knowledgecenter/SSZJPZ_11.3.0/com.ibm.swg.im.iis.ds.parjob.dev.doc/topics/r_deeref_String_Functions.html

http://docs.intersystems.com/ens201317/csp/docbook/DocBook.UI.Page.cls?KEY=RVBS_foconv

我使用的转换:ICONV(column_name,"MCP")

于 2016-02-17T19:23:19.983 回答