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

问题描述 投票:2回答:5

我正在使用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并且从未卸载时安装。或者是其他东西?

sql-server ssis odbc compatibility
5个回答
7
投票

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


0
投票

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

这是我在SSIS中通常用于ODBC连接的方法 - 在32位和64位中创建连接。

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


0
投票

在SQL Server代理中执行我的包时遇到同样的问题。我通过在代理步骤中打开执行选项“使用32位运行时”标志来解决它。几天带我疯了,希望这会有所帮助。


0
投票

检查解决方案的版本与您部署的SQL版本。我有这个问题,匹配版本修复了问题。我的解决方案是2017年,但SQL框是2016年。我不得不将解决方案改为2016年。干杯!


0
投票

在我的情况下,我遇到了这个错误,我转而使用32位版本。我的初始测试工作,然后我使用我正在使用的项目重新部署,我再次收到此错误,即使我已切换执行选项“使用32位运行时”标志。

最后我遇到了ODBC数据源问题。我使用的是IBM Informix驱动程序,它在选择的语言环境中存在问题。我将其更改为使用服务器的特定本地并测试其连接。然后工作,我的SSIS包在服务器上工作。

© www.soinside.com 2019 - 2024. All rights reserved.