SSIS:将表从MySQL复制到SQL Server 2008

Dan*_*Sh. 5 mysql ssis sql-server-2008

我在尝试将4个表从MySQL源复制到SQL Server 2008时遇到错误.

这是一张数据流的照片,正如你所看到的,其中2张是好的(较小的)

在此输入图像描述

使用OnError事件处理程序,我能够看到错误.他们来了.

SSIS错误代码DTS_E_OLEDBERROR.发生OLE DB错误.错误代码:0x80040E21.OLE DB记录可用.来源:"Microsoft SQL Server Native Client 10.0"Hresult:0x80040E21说明:"多步OLE DB操作生成错误.检查每个OLE DB状态值,如果可用.没有工作.".

输入"OLE DB目的地输入"(510)上的输入栏"FechaHoraCorteAgente"(884)出错.返回的列状态为:"转换失败,因为数据值溢出指定的类型.".

SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR."输入"OLE DB目标输入"(510)"失败,因为发生错误代码0xC020907A,并且"输入"OLE DB目标输入"(510)"上的错误行处置指定错误失败.指定组件的指定对象发生错误.在此之前可能会发布错误消息,其中包含有关失败的更多信息.

SSIS错误代码DTS_E_PROCESSINPUTFAILED.组件"OLE DB Destination 2"(497)上的ProcessInput方法在处理输入"OLE DB Destination Input"(510)时失败,错误代码为0xC0209029.标识的组件从ProcessInput方法返回错误.该错误特定于组件,但错误是致命的,将导致数据流任务停止运行.在此之前可能会发布错误消息,其中包含有关失败的更多信息.

组件"ado net conptacto"(1)无法处理数据.来自HRESULT的异常:0xC0047020

组件"ADO NET logllamados"(482)无法处理数据.来自HRESULT的异常:0xC0047020

SSIS错误代码DTS_E_PRIMEOUTPUTFAILED.组件"ado net conptacto"(1)上的PrimeOutput方法返回错误代码0xC02090F5.当管道引擎调用PrimeOutput()时,组件返回失败代码.失败代码的含义由组件定义,但错误是致命的,管道停止执行.在此之前可能会发布错误消息,其中包含有关失败的更多信息.

SSIS错误代码DTS_E_PRIMEOUTPUTFAILED.组件"ADO NET logllamados"(482)上的PrimeOutput方法返回错误代码0xC02090F5.当管道引擎调用PrimeOutput()时,组件返回失败代码.失败代码的含义由组件定义,但错误是致命的,管道停止执行.在此之前可能会发布错误消息,其中包含有关失败的更多信息.

知道这里发生了什么吗?

Die*_*ego 5

"转换失败,因为数据值溢出指定的类型." 看起来非常明显,你试图插入一些不适合的东西.我建议您将所有源列与目标列进行比较,并确保:

  • 长度足够了
  • 数据类型兼容

你可以发布你的表格结构,如果你想要的话


Dan*_*Sh. 3

源列的日期时间字段中有 0000-00-00。所以就出现了错误。

使用表达式创建派生列:

(DT_DBTIMESTAMP)(DAY([FechaHoraCorteAgente]) == 0 ? NULL(DT_DBTIMESTAMP) : [FechaHoraCorteAgente])
Run Code Online (Sandbox Code Playgroud)