SSIS:ODBC源的版本与此版本的数据流不兼容

Tod*_*nke 2 sql-server compatibility odbc ssis

我正在使用Visual Studio 2015来创建一个简单的SSIS包.数据源是DB2数据库,我在工作站上使用ODBC驱动程序连接到DB2.目标是SQL Server 2014.

该程序包在本地运行良好,但每当我在服务器上运行它时,我都遇到ODBC数据源问题.服务器上的驱动程序与我工作站上的驱动程序完全相同.

为了将程序包放入服务器,我已将dtsx文件导入到存储包中的SSIS中.我也尝试将项目部署到Integration Service Catalog,但是当我这样做时,我得到了与ODBC源相关的其中一个失败 -

  • The version of ODBC File Source, clsid {xxx} is not compatible with this version of the Data Flow.
  • The component is missing, not registered, not upgradeable, or missing required interfaces. The contact information for this component is "ODBC Source;Connector for Open Database Connectivity (ODBC) by Attunity; Attunity Ltd.; All Rights Reserved; http://www.attunity.com

我还尝试使用基于文件的ODBC源代替服务器上共享文件夹中的该文件的系统.同样,它在VS中运行良好但在服务器上运行不正常.

我查看了dtsx文件(基于xml),我怀疑与ODBC驱动程序的DTSID存在冲突.我不确定它是如何工作的,但似乎每个计算机的ID都是唯一的,SSIS正在尝试在服务器上使用工作站的DTSID.

我对SSIS和Visual Studio有点新意,所以我希望我假设有一种简单的方法来运行在服务器上的工作站上开发的软件包而不需要这些挂起.我无法在任何地方找到任何特定于此问题的内容.

我们没有在服务器上安装VS或SSDT.

编辑:我在上面的第二条错误消息中添加了第二句.它指的是Attunity提供的连接器,这是我不明白的.系统上安装的ODBC驱动程序来自Data Direct.错误消息中返回的CLSID还与服务器注册表中的Attunity连接器相关联.

在任何一个ODBC管理器中都没有出现来自Attunity的ODBC驱动程序,因此它们可能是默认安装的一部分,或者在我们的服务器直接安装SSDT和VS并且从未卸载时安装.或者是其他东西?

Yan*_*nek 7

我已经通过在我的情况下将VS中的Integration Services项目的部署目标版本从SQL Server 2017更改为SQL Server 2016(目标SQL版本)来解决此问题.希望这可以帮助.老问题,但当我试图解决我的问题时,谷歌首先出现了.

  • 在 Visual Studio 菜单“项目”-->“属性”中,或者只需右键单击“解决方案资源管理器”中的项目名称,然后选择“属性”。它应该是名为“TargetServerVersion”的常规属性类别中的第一个选项。 (3认同)

小智 0

VS或SSDT默认使用32位驱动程序,因此在执行32位时请检查是否有选项。或者同时安装 32 位和 64 位驱动程序并创建具有相同名称的 ODBC。

这就是我通常在 SSIS 中对 ODBC 连接所做的事情——在 32 位和 64 位中创建连接。

因此,创建一个 C:\Windows\SysWOW64\odbcad32.exe(32 位)和一个 C:\Windows\System32\odbcad32.exe(64 位)。