SSIS - 将多个结果集从存储过程导出到Excel中的多个工作表

时间:2015-03-06 12:36:37

标签: ssis

我一直在创建一个SSIS包,其中我使用的过程返回3个结果集,这需要复制到具有3个不同表的单个Excel。我使用了一个脚本组件来提取数据,定义了3个输出,并使用数据读取器将结果映射到那些输出。我添加了3个不同的Excel文件目的地的路径(所有指向相同的文件,但不同的表)。当我运行包时,它每5/6次运行一次,但大多数情况下会失败并出现以下错误。

任何人都可以帮助我为什么大部分时间都会失败以及如何解决它。

错误:0xC0202009在数据流任务,Excel目标1 [366]:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。

错误:数据流任务中的0xC0209029,Excel目标1 [366]:SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “输入”Excel目标输入“(377)”失败,因为出现错误代码0xC020907B,并且“输入”Excel目标输入“(377)”上的错误行处置指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

错误:数据流任务中的0xC0047022,SSIS.Pipeline:SSIS错误代码DTS_E_PROCESSINPUTFAILED。组件“Excel目标1”(366)上的ProcessInput方法在处理输入“Excel目标输入”(377)时失败,错误代码为0xC0209029。标识的组件从ProcessInput方法返回错误。该错误特定于组件,但错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

1 个答案:

答案 0 :(得分:0)

尝试并行写入所有三个表可能会导致争用问题。重新设计您的包以强制三个数据流按顺序运行(sheet1,sheet2,sheet3),问题就会消失。