【问题标题】:Insert Data from one Mysql table in Server A to Another Mysql Table inside SSIS将服务器 A 中的一个 Mysql 表中的数据插入到 SSIS 中的另一个 Mysql 表中
【发布时间】: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

标签: mysql ssis


【解决方案1】:

您需要在首先运行 SSIS 的机器上安装 MySQL ODBC 连接器。你可以下载它here。然后,您可以在 SSIS 中创建与 MySQL 的 ODBC 连接,并使用 ODBC 数据源和目标。您必须在 ODBC 连接的“驱动程序”属性中指定已安装的连接器。

【讨论】:

  • ,我们已经安装了{MySQL ODBC 5.3 Unicode Driver},数据源组件没有问题。问题出在目的地
  • 抱歉我们使用的是.net provider\MYSQL data provider
  • 您可以尝试使用 ODBC 或 OLEDB 目标进行加载吗?您必须为此安装 ODBC 驱动程序,但根据我的经验,您有时可以从这些提供程序获得更有意义的 SSIS 错误消息。因此,即使它不起作用,它也可能会向您显示“更好”的错误消息
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
相关资源
最近更新 更多