当我直接从 Visual Studio 运行包时,它不会引发错误。当我通过 SQL Server 代理作业执行包时,它会引发错误:
来源:Fact_Invoice_Item PWBConsolidation [1] 描述:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 10.0”Hresult:0x00040EDA 描述:“警告:空值被聚合或其他 SET 操作消除。”。结束错误错误:2012-02-14 07:17:49.01 代码:0xC0047038 来源:Fact_Invoice_Item SSIS.Pipeline
说明:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“PWBConsolidation”(1) 上的 PrimeOutput 方法返回错误代码 0xC0202009。当管道引擎调用 PrimeOutput() 时,组件返回了失败代码。失败代码的含义由组件定义,但错误是致命的并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。结束错误 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:上午 7:14:35 结束时间:上午 7:17:50 经过时间:195.094 秒。包执行失败。注意:该步骤已重试请求的次数 (3),但未成功。步骤失败。
我已经隔离了导致问题的部分。在 Ole Db Source 中,我使用查询来获取数据,当我删除以下行时,包将通过 Sql Server 代理作业成功执行:
Checksum = Checksum(S.BrokerID, S.TeamID, II.DatabaseName, II.INVOICE, I.Invoice_Date, P.Expiration_Date, P.Effective_Date,
P.Binder_Effective, I.AGENCY, II.MARKET, P.POLICY, CT.LINE_OF_BUSINESS, II.Coverage_Type, SUB.INSURED,
LOB.Description, CT.Description, I.Date_Due, I.Installment, P.Installments, P.ENDORSES, I.Inv_Tdate, Inv_Acctcur,
INS.INDUSTRY, SUB.SUBMISSION
)
编辑:
我刚刚检查过,看起来部分数据通过数据流,在某些时候它只是抛出错误。我手动设置了 Checksum=2 还是不行
知道为什么会这样吗?
非常感谢,
伊利亚