我的客户使用名为IFS(ERP系统)的工具,该工具在Oracle上运行(客户运行11.2)。我的工作是使用Microsoft SQL Server Integration Services(或SSIS)从那里提取信息。为此,我们使用Oracle的Attunity驱动程序(默认ODBC太慢)。
我今天在现有包中添加了一些新列,方法是将它们附加到现有查询的尾部。令我惊讶的是,当我尝试将新专栏加入新表时,它没有发现任何结果。事实证明,列中的值不是我预期的值。稍后的一些冗长的故障排除会话,我发现了以下内容。
我们的大多数IFS对象最后都包含三列; OBJID
,OBJVERSION
和OBJKEY
。但是,这些专栏正在发生一些险恶的事情。它们几乎总是按以上顺序选择:
查询Oracle会产生所有有效的列和数据:
但是,由于某种原因,OBJID
未被识别为SSIS中的有效列,并拒绝显示为列。请注意来自Oracle的数据如何进入结果集;只是不在右栏。该列中的实际数据显然完全被驳回(在上面的屏幕截图中,该列看起来是空白的。我可能只是选择了一个错误的列进行截屏;但它仍然证明了我的观点并突出了问题的核心):
检查"列" SSIS中的选项卡,ROWID存在,但未选中复选框。手动检查无效。
我们从SAP导入另一个名为OBJID的列,也使用SSIS,并且工作正常。因此,我怀疑这个问题可能与Attunity司机有关,但似乎无法弄明白究竟发生了什么。
我希望有人可能以前遇到过此事,并且有一个解决方法。
这是一个有趣的问题,让我难以忍受了好几个小时。我正在解决它,因此不需要立即解决问题;问题纯粹是试图满足自己的好奇心。
我要感谢/感激任何暗示:)
答案 0 :(得分:0)
当使用Attinuity连接器时,我已经把我的一些bizzare问题突然出现,并且当它被证明是不可靠的时候已经放弃了它们。包有时工作,下次运行时停止工作。我调整了一些DFT并向下调整系统,我有时需要从头开始重新创建。
您所面临的问题也可能是此问题的直接结果。我强烈建议您转到'Oracle Provider for OLE DB',您可以从此链接下载http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html。
如果有很多pacakges,我理解这将是一项痛苦的任务,但这是值得的。