我正在尝试将表从 SQL SERVER 2012 导出到 Excel 2007 工作簿。
OLE DB Source -> Excel Destination 中的简单任务完美运行。
我有一个名为 [POD 分配] 的字段,如果 [POD 分配] 等于“未知”,我想导出到工作簿中的一张工作表,如果不等于“未知”,则导出到另一张工作表。
将 OLE DB 源链接到条件拆分。
我有一个名为“Unknowns”的输出,其中条件是“[POD 分配] ==“UNKNOWN””。
我将输出“Unknowns”链接到 Excel 目标。
此时,当我运行该包时,一切都按预期进行。行已正确导出到工作簿,并且计数正确。正如这里所见:
[] https://i.stack.imgur.com/abcXQ.png https://i.stack.imgur.com/abcXQ.png
现在,我将条件拆分连接到第二个 Excel 目标,其中输出是条件拆分的默认输出。 Excel 第二个目标使用与第一个目标完全相同的 Excel 连接。所有数据都应该导出到同一工作簿中的不同工作表。
运行失败。正如这里所见:
[]: https://i.stack.imgur.com/hUmIK.png https://i.stack.imgur.com/hUmIK.png
任务因错误而提前中止。
我收到以下错误代码:
[Excel 目标 1 [101]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。
OLE DB 记录可用。来源:“Microsoft Office Access 数据库引擎” Hresult:0x80004005 描述:“无法扩展命名范围。”。
[Excel 目标 1 [101]] 错误:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “Excel 目标 1.Inputs[Excel 目标输入]”失败,因为出现错误代码 0xC020907B,并且“Excel 目标 1.Inputs[Excel 目标输入]”上的错误行处理指定出错时失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。处理输入“Excel 目标输入”(112) 时,组件“Excel 目标 1”(101) 上的 ProcessInput 方法失败,错误代码为 0xC0209029。所识别的组件从 ProcessInput 方法返回错误。该错误特定于该组件,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
[OLE DB 源 [188]] 错误:设置缓冲区的行集结尾失败,错误代码为 0xC0047020。
[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。 OLE DB 源上的 PrimeOutput 方法返回错误代码 0xC0209017。当管道引擎调用 PrimeOutput() 时,组件返回失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
任何帮助,将不胜感激。这真让我抓狂。我不明白为什么使用一个目标进行条件分割效果很好,但当我添加第二个目标时,一切都会失败。