在我正在运行的一个非常大的项目中,我们的开发团队正在使用Informatica Power Center访问AS400 iSeries上的DB2数据库中的数据。我们可以建立ODBC连接并且可以读取数据,但它是以EBCDIC进入并保持这种状态,从不转换为ASCII。我们检查了盒子上的代码页,驱动程序,下载的参数 - 我们能想到的一切 - 但Informatica和IBM都无法弄清楚发生了什么。
有没有人有任何想法?你以前成功完成了吗?我想知道我们是否有Linux环境问题,因为当开发人员在Windows机器上使用Windows驱动程序时,它可以正常工作。不幸的是,这对我们来说不是一个可行的选择。
答案 0 :(得分:0)
这通常是CCSID不匹配问题。检查IBM端以查看该表是否不是CCSID(65535)(无转换)。使用locale
检查Informatica端的语言设置。 /opt/ibm/iSeriesAccess/bin/cwbnltbl
将描述区域设置和CCSID之间的匹配。假设有一个不匹配:
要更改或添加字符集CCSID映射,请将以下行添加到$HOME/.iSeriesAccess/cwb_userprefs.ini
配置文件中。
[CWB_CURRUSER\Software\IBM\Client Access Express\CurrentVersion\NLS] CCSID-CODESET=attr_str:939,IBM939,819,IBM819
上面的示例为CCSID 939创建了字符集“IBM939”和CCSID 819到字符集“IBM819”的映射。