我们有一个使用 VS2017 设计的测试包,其中有一个“数据流任务”对象,其中包含“ODBC 源”和“ODBC 目标”对象。该包只是尝试将记录从表“Table_1”移动到名为“Test”的同一 SQL Server 2014 数据库中的表“Table_2”。
当我们从VS2017执行该包时,它运行成功。
但是,当我们将该包导入 SSIS,然后直接从那里运行该包时,我们会收到以下错误消息(请参见下面的屏幕截图):
The version of ODBC Destination, clsid {51B271F1-3B7E-4875-870E-62A0456FE2AD} is not compatible with this version of the DataFlow.
The version of ODBC Source, clsid {F8600F4A-E321-42F4-AA59-DA00FA374EA5} is not compatible with this version of the DataFlow.
The component is missing, not registered, not upgradeable, or missing required interfaces. The contact information for this component is "ODBC Destination;Connector for Open Database Connectivity (ODBC) by Attunity; Attunity Ltd.; All Rights Reserved; http://www.attunity.com;7".
关于导致这些错误的原因有什么想法吗?
几个附带问题/有趣的注释:
- 为什么它引用 Attunity?我们没有使用 Attunity 连接器。我们正在使用 ODBC。我什至没有在这台机器上安装 Attunity(我曾经安装过,但后来卸载了它)。
- 如果您不将 DataFlow 任务与 OBDC 驱动程序一起使用,而仅在运行简单的“INSERT INTO Table_2...”语句的包中使用简单的“执行 SQL 任务”对象,则该包将在 SSIS 中运行。使用数据流任务时出现问题。
截图:
这里可以看到该包在VS2017中运行成功:
该包被导入到SSIS中:
当您在 SSIS 中运行它时,它会失败并出现以下错误:
从其他帖子里找到了答案。
首先,将项目的 TargetServerVersion 属性更改为用于 SSIS 的 SQL Server 版本,如下面的链接和屏幕截图所示。
ODBC 源的版本与此版本的数据流不兼容 https://stackoverflow.com/questions/40106964/the-version-of-odbc-source-is-not-compatible-with-this-version-of-the-dataflow
SSIS:ODBC 源版本与此版本的数据流不兼容 https://stackoverflow.com/questions/41302778/ssis-version-of-odbc-source-is-not-compatible-with-this-version-of-the-dataflow
执行此操作后,您可能会遇到类似以下内容的错误:
[ODBC Destination [2]] Error: The AcquireConnection method call to the connection manager MyConnectionManager failed with error code 0xC0014009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.
如果出现该错误,请将项目的 Run64BitRuntime 属性更改为“True”,如下面的链接和屏幕截图所示。
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/eb9e6826-b650-433b-bab9-16da214efd99/the-acquireconnection-method-call-to-the-connection-manager-mydatabaseodbc-failed-带有错误代码?forum=sqlintegrationservices
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)