我正在尝试将表从 SQL SERVER 2012 导出到 Excel 2007 工作簿。
OLE DB Source -> Excel Destination 中的简单任务完美运行。
我有一个名为 [POD 分配] 的字段,如果 [POD 分配] 等于“未知”,我想导出到工作簿中的一个工作表,如果不是,我想导出到另一个工作表。
将 OLE DB 源链接到条件拆分。
我有一个名为“Unknowns”的输出,其中条件是“[POD Assignment] == “UNKNOWN””。我将输出“未知”链接到 Excel 目标。
此时,当我运行包时,一切正常。这些行已正确导出到工作簿,并且计数是正确的。如此处所示:
[] http://imgur.com/iKcJCfY,rHnW8ax#0
现在我将条件拆分连接到第二个 excel 目标,其中输出是条件拆分的默认输出。excel 第二个目的地使用与第一个完全相同的 Excel 连接。并且所有数据都应该导出到同一工作簿中的不同工作表。
运行此失败。如此处所示:
[]:http: //imgur.com/iKcJCfY,rHnW8ax#1
任务因错误而过早中止。
我收到以下错误代码:
[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() 时,组件返回了失败代码。失败代码的含义由组件定义,但错误是致命的并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
任何帮助,将不胜感激。这真让我抓狂。我不明白为什么使用一个目的地进行条件拆分非常有效,但是当我添加第二个目的地时,一切都失败了。