【发布时间】:2020-07-14 20:44:55
【问题描述】:
我正在尝试将服务器 A 中 MySQL 表 T1 中的一些 id 插入到 SSIS 包内服务器 B 中的 MySQL 表 T2 中。
我已经尝试使用 ADO.NET 源来读取数据和 ADO.NET 目标,但它给了我这个错误:
[ADO NET 目标 [2]] 错误:System.NullReferenceException:对象引用未设置为对象的实例。 在 Microsoft.SqlServer.Dts.Pipeline.ADONETDestination.PreExecute() 在 Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPreExecute(IDTSManagedComponentWrapper100 包装器) [SSIS.Pipeline] 错误:ADO NET Destination 未通过预执行阶段并返回错误代码 0x80004003。
实际上,我已经解决了这个问题,方法是插入到 SQL Server 表中,然后使用此语句通过链接服务器运行 Insert 语句:
EXEC(@Insert) AT [LinkedServerName]
不知道有没有更好的解决方案?
【问题讨论】:
-
SQL server 组件几乎无法访问 mysql server。你有安装 mysql connector/net 或 myodbc 吗?
-
@Shadow 恰恰相反——SSIS 使用 OLEDB、ODBC 和 ADO.NET 连接器,只要安装了适当的提供程序,它们就可以连接到几乎所有可用的数据源
-
您是如何配置该目的地的?您使用的是哪个 ADO.NET 提供程序?哪个版本? Oracle 的 Connector/NET 有点喜怒无常,因此人们通常会使用其他提供者。如果您使用的是Connector/NET,您是否升级到最新版本>您是否考虑过改用ODBC驱动程序?
-
我们正在使用.net provider\MYSQL data provider