2012-05-04 68 views
1

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

使用MySQL连接的ADO.NET源代码。

OLE DB目标,SQL Server。

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

enter image description here

Error: 0xC02090F5 at Data Flow Task, ADO NET Source 1 : The component "ADO NET Source" (1) was unable to process the data. Fatal error encountered during data read.
Error: 0xC0047038 at Data Flow Task, SSIS.Pipeline: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "ADO NET Source" (1) returned error code 0xC02090F5. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.

此错误的任何想法?

+0

可能存在多个错误消息 - 请发布 –

回答

5

这花了我几天要弄清楚......所以我想我会分享我的笔记


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

1 - 下载32位ODBC驱动程序。 转到MySQL网站并下载:“mysql-connector-odbc-5.2.4-ansi-win32.msi”注意:不要在BIDS 2008上使用64位驱动程序.BIDS 2008是32位。在创建SSIS的连接管理器时,您会看到不匹配错误:“指定的DSN包含驱动程序和应用程序之间的架构不匹配”

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

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

4 - 更改源ADO.NET属性。你会得到验证错误,你的包不会运行。您需要将ADO.NET源代码的“ValidateExternalMetadata”更改为FALSE(在“高级编辑器”对话框中)。它也会给出元数据错误...没关系......只需单击确定即可。它仍然会拉取元数据(列名/数据类型)。您不能像在SQL服务器中那样选择表格。您需要输入SQL select语句。

5 - 运行包并运行并正常加载。