我有一个SSIS包,间歇性地失败了一些错误,其中两个最有用的信息是:
DFT_PlaySummary SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:“Microsoft SQL Server Native Client 10.0”Hresult:0x80004005说明:“日期格式无效”。 OLE DB记录可用。来源:“Microsoft SQL Server Native Client 10.0”Hresult:0x80004005描述:“日期格式无效”。**
DFT_PlaySummary输入“OLE DB目标输入”(2121)上的输入列“dtCreated”(2129)出错。返回的列状态为:“转换失败,因为数据值溢出指定的类型。”。**
源数据库和目标数据库都是SQL Server 2008 R2。源和目标中的列dtCreated是DATETIME(NOT NULL)。
现在,我理解错误消息所说的内容的基础,但我无法理解数据或转换在包中是否无效,而在源头上已被视为无效。
奇怪的是,在某些日子里,软件包将因此错误而失败,重新启动(根据软件包设置),然后在没有任何手动干预的情况下成功。
关于我应该在包装步骤中寻找什么的任何指针可能导致这个?数据流任务本身由几个OLE DB源组成,每个源都有一个派生列,然后合并这些数据集,然后根据dtCompleted值对各种OLE DB目标进行条件拆分。
您可以尝试两种选择,
当这种类型的错误通常发生时,数据转换很方便。
应正确使用SSIS日期时间格式。下面的文章清楚地解释了差异。使用您需要的正确格式。