1

我想将表从 MySQL 复制到 SQL Server。

ADO.NET 源使用 MySQL 连接。

OLE DB 目标,SQL Server。

该声明是完整的副本,因此没什么大不了的。当我点击播放按钮时,一段时间后会弹出一个错误。我设置了一个 DataViewer 并重新开始,在检查 DataViewer 的同时从 DataFlow 内部运行它。过了一会儿(这次花了更长的时间)错误。

在此处输入图像描述

错误:数据流任务中的 0xC02090F5,ADO NET 源1:组件“ADO NET 源”(1) 无法处理数据。数据读取过程中遇到致命错误。
错误:数据流任务中的 0xC0047038,SSIS.Pipeline:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“ADO NET Source”(1) 上的 PrimeOutput 方法返回错误代码 0xC02090F5。当管道引擎调用 PrimeOutput() 时,组件返回了失败代码。失败代码的含义由组件定义,但错误是致命的并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

关于这个错误的任何想法?

4

1 回答 1

6

这花了我几天的时间才弄清楚……所以我想我会分享我的笔记


如何将数据从 MySQL 连接并加载到 SQL Server

1 - 下载 32 位 ODBC 驱动程序。访问 MySQL 网站并下载:“mysql-connector-odbc-5.2.4-ansi-win32.msi” 注意:请勿在 BIDS 2008 上使用 64 位驱动程序。BIDS 2008 是 32 位的。创建 SSIS 的连接管理器时会出现不匹配错误:“The specified DSN contains an architecture mismatch between Driver and Application”</p>

2 - 创建用户 DSN 您需要打开使用 windows 32 ODBC 管理工具。不要在控制面板中打开常规的 ODBC 管理员。打开位于此处的 ODBC 管理员:c:\Windows\SysWOW64\odbcad32.exe。如果您使用默认的 ODBC 管理员……它将无法工作。此外,您必须创建“用户 DSN” - 而不是系统 DSN。否则它不会显示在 SSIS 注意:屏幕看起来相同,因此您将无法知道您是否在 32 位 ODBC 管理工具中。

3 – 创建一个新的 SSIS 包并创建一个 ADO.NET 连接管理器和 ADO.NET SQL Server 目标。

4 – 更改源 ADO.NET 属性。您将收到验证错误,并且您的包将无法运行。您需要将 ADO.NET 源代码的“ValidateExternalMetadata”更改为 FALSE(在“高级编辑器”对话框中)它也会给您元数据错误……没关系……只需单击确定。它仍然会提取元数据(列名/数据类型)。您不能像在 SQL Server 中那样选择表。您需要键入 SQL 选择语句。

5 - 运行包,应该可以正常运行和加载。

于 2013-04-29T23:36:45.817 回答