在我正在运行的一个非常大的项目中,我们的开发团队正在使用Informatica Power Center来访问AS400 iSeries上的DB2数据库中的数据。我们可以建立ODBC连接并可以读取数据,但是它一直在EBCDIC中并保持这种状态,从不转换为ASCII。我们已经检查了包装盒上的代码页,驱动程序,下载中的参数-我们能想到的所有内容-但是Informatica和IBM都无法确定发生了什么。

有人有什么想法吗?您之前成功完成此操作吗?我想知道我们是否遇到Linux环境问题,因为当开发人员在Windows机器上使用Windows驱动程序时,它工作正常。不幸的是,这对我们来说不是一个可行的选择。

最佳答案

这通常是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”的映射。

取自ODBC language considerations

10-06 12:51