3

我正在尝试将表从 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() 时,组件返回了失败代码。失败代码的含义由组件定义,但错误是致命的并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

任何帮助,将不胜感激。这真让我抓狂。我不明白为什么使用一个目的地进行条件拆分非常有效,但是当我添加第二个目的地时,一切都失败了。

4

4 回答 4

3

我有这个确切的错误信息。我尝试了其他答案的建议,但都没有奏效。

我的问题原来是我试图同时写入不同的选项卡。

我没有写入同一个数据流任务中的每个选项卡,而是将每个选项卡放入它自己的数据流中,这样每次写入都会发生一次。这解决了问题。

于 2015-10-12T14:59:26.933 回答
2

检查您的 Excel 目标是否没有数据(如果适用,标题行除外)。

我遇到了Hresult: 0x80004005 Description: "Cannot expand named range."错误,我的问题并不是很明显:

  • 我有一个现有Union All的两个 Excel 文件到一个 Excel 文件中
  • 一个来源的第一列是一个数字。另一个来源是字母数字。
  • 我将源的第一列更改为新列Derived Column,它变成了字母数字。
  • (我忽略了清理目的地 - 它仍然有现有数据,其中前几行数据是数字)
  • 有效,Union All但目标失败(源文件也显示红色 X)

我通过“截断”excel文件来修复它,回到标题行。(并且我可以通过将 A 列中的一些示例行设置回数字来重新创建错误)。我想我现在将使用一个空的 Excel 文件模板并首先覆盖目标(除非有更简单的方法?)

于 2013-04-24T05:09:41.590 回答
1

您不能同时从同一个工作簿写入不同的工作表,因为 Excel 文件在用作目标时被写锁定

于 2016-10-20T21:40:56.460 回答
0

除了随机工作表(任务)失败外,我遇到了类似的问题。在花了一个多星期尝试所有可能的解决方案但没有成功后,我发现我的计算机上安装了 Microsoft Office 2007(32 位),而其他所有东西都是 64 位的。我在服务器上部署并测试了一切都是 64 位的,它工作正常。

我不确定这是否是您的情况,但希望对您有所帮助。

于 2013-08-01T19:09:11.360 回答