linux - 在 Linux 服务器上通过 Informatica Power Center 读取 DB2 数据时出现问题

标签 linux db2 ibm-midrange informatica

在我正在运行的一个非常大的项目中,我们的开发团队正在使用 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

关于linux - 在 Linux 服务器上通过 Informatica Power Center 读取 DB2 数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16365991/

相关文章:

java - 比较两个不同表的两个结果集

java - 我可以锁定 DB2 的行以供读取吗?

php - 如何使用 PHP 连接到 as400

db2 - AS400 上的 IBM DB2

archive - IBM i PASE tar - 排除文件或目录

linux - 为什么 pidstat 没有反射(reflect)我使用任务集对 CPU 亲和性所做的更改?

linux - 从日志文件中获取最后 30 分钟

database - DB2 数据库名称是否区分大小写

linux - 使用 shell 脚本捕获通过 ssh 从父脚本调用的子脚本的退出代码

linux - 在 linux shell 命令中替换输出文件扩展名