在我正在运行的一个非常大的项目中,我们的开发团队正在使用 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”的映射。
关于linux - 在 Linux 服务器上通过 Informatica Power Center 读取 DB2 数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16365991/