我尝试将表从SQL SERVER 2012导出到Excel 2007工作簿。
来自OLE DB Source的简单任务 - > Excel Destination完美运行。
我有一个名为[POD Assignment]的字段,如果[POD Assignment]等于" UNKNOWN",我想导出到工作簿中的一个工作表,如果它是另一个工作表,我想导出到工作簿中的一个工作表不
将OLE DB源链接到条件性拆分。
我有一个名为"未知数"条件是" [POD分配] ==" 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.输入[Excel目的地输入]"失败,因为错误代码0xC020907B发生,错误行处置" Excel目标1.输入[Excel目标输入]"指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
[SSIS.Pipeline]错误:SSIS错误代码DTS_E_PROCESSINPUTFAILED。组件" Excel目标1"上的ProcessInput方法; (101)在处理输入" Excel目的地输入"时失败,错误代码为0xC0209029。 (112)。标识的组件从ProcessInput方法返回错误。该错误特定于组件,但错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。 [OLE DB Source [188]]错误:设置缓冲区的行集结束失败,错误代码为0xC0047020。 [SSIS.Pipeline]错误:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。 OLE DB Source上的PrimeOutput方法返回错误代码0xC0209017。当管道引擎调用PrimeOutput()时,组件返回失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
任何帮助将不胜感激。这真让我抓狂。我不明白为什么使用一个目的地进行条件分割是完美的,但是当我添加第二个目的地时,一切都失败了。
答案 0 :(得分:3)
我有这个确切的错误消息。我尝试了其他答案的建议,没有一个工作。
我的问题原来是我试图同时写入不同的标签。
我没有写入同一数据流任务中的每个选项卡,而是将每个选项卡放入其自己的数据流中,以便每次写入一次一个。这解决了这个问题。
答案 1 :(得分:2)
检查您的Excel目标是否为空数据(如果适用,标题行除外)。
我遇到Hresult: 0x80004005 Description: "Cannot expand named range."
错误,我的问题不是很明显:
Union All
存入一个Excel文件Derived Column
,它变成了字母数字。Union All
工作正常,但目标失败(源文件也显示红色X)我通过“截断”excel文件修复它,回到标题行。 (我可以通过将A列中的一些样本行设置回数字来重新创建错误)。我想我现在将使用一个空的Excel文件模板并首先覆盖目的地(除非有easier way?)
答案 2 :(得分:1)
您无法同时从同一工作簿中写入不同的工作表,因为excel文件在用作目标时会被写入锁定
答案 3 :(得分:0)
我遇到了类似的问题,但在随机工作表(任务)上失败了。花了一个多星期的时间尝试所有可能的解决方案而没有任何成功,我发现我的计算机上安装了Microsoft Office 2007(32位),而其他所有内容都是64位的。我在服务器上部署并测试了64位的所有内容,并且工作正常。
我不确定这是不是你的情况,但希望它可以帮助你。