无法使用SSIS将SQL Server varchar(max)传输到MySQL文本

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (81)

我正在尝试使用SSIS将表从SQL Server传输到MySQL,并且它在SQL Server上的varchar(max)和MySQL上的文本的一列上失败。到目前为止,我已经尝试将此作为OLE DB到ODBC数据流,以及将BCP输出到ODBC数据流的平面文件中。相关字段在SSIS中配置为DT_TEXT。在这两种情况下,它产生以下错误集:

[ODBC Destination [47]]错误:发生了打开数据库连接(ODBC)错误。插入第1行时SQLExecute返回错误 [ODBC Destination [47]]错误:发生了打开数据库连接(ODBC)错误。州:'HYC00'。本机错误代码:0。[MySQL] [ODBC 5.2(a)驱动程序] [mysqld-5.1.69-log]不支持执行数据的参数数组 [SSIS.Pipeline]错误:SSIS错误代码DTS_E_PROCESSINPUTFAILED。处理输入“ODBC目标输入”(58)时,组件“ODBC目标”(47)上的ProcessInput方法失败,错误代码为0x80004005。标识的组件从ProcessInput方法返回错误。该错误特定于组件,但错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

当我选择忽略该列时,包的两个版本都运行正常。

我还要注意,之前这是使用带有openquery的链接服务器完成的,它没有任何问题。但是,由于性能问题,我们正试图摆脱链接服务器。

更新:

我设法使用SQL Server BCP out然后使用MySQL 来完成所需的行为,LOAD DATA INFILE但知道如何使用SSIS数据流完成此操作仍然很好,因为它绝对是更简单的方法,并且应该更快,因为它在内存中运行。

提问于
用户回答回答于

确保源和目标中的文本编码相同,或者如果没有,则在SSIS中进行适当的转换。

如果这是问题,下面的文章可能会有所帮助 - 它是朝着另一个方向(MySQL到SQL Server),但是有关于两个数据库中使用的编码类型的一些有用信息,以及如何携带的一些示例这种转换:

http://agilebi.com/ddarden/2010/09/19/extracting-mysql-utf-8-fields-with-ssis/

用户回答回答于

扫码关注云+社区

领取腾讯云代金券