Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在SSDT中创建SSIS包。数据流任务中的条件拆分导致包中断_Excel_Ssis_Sql Server Data Tools - Fatal编程技术网

Excel 在SSDT中创建SSIS包。数据流任务中的条件拆分导致包中断

Excel 在SSDT中创建SSIS包。数据流任务中的条件拆分导致包中断,excel,ssis,sql-server-data-tools,Excel,Ssis,Sql Server Data Tools,我正在尝试将表从SQL SERVER 2012导出到Excel 2007工作簿 OLE DB Source->Excel Destination中的简单任务非常有效 我有一个名为[POD Assignment]的字段,如果[POD Assignment]等于“UNKNOWN”,我想导出到工作簿中的一张工作表,如果它不等于“UNKNOWN”,我想导出到另一张工作表 将OLE DB源链接到条件拆分 我有一个名为“Unknowns”的输出,其中的条件是“[POD赋值]==”UNKNOWN“。 我将输出

我正在尝试将表从SQL SERVER 2012导出到Excel 2007工作簿

OLE DB Source->Excel Destination中的简单任务非常有效

我有一个名为[POD Assignment]的字段,如果[POD Assignment]等于“UNKNOWN”,我想导出到工作簿中的一张工作表,如果它不等于“UNKNOWN”,我想导出到另一张工作表

将OLE DB源链接到条件拆分

我有一个名为“Unknowns”的输出,其中的条件是“[POD赋值]==”UNKNOWN“。 我将输出“未知”链接到Excel目标

此时,当我运行包时,一切都正常工作。行已正确导出到工作簿,并且计数正确。如图所示:

[]

现在,我将条件拆分连接到第二个excel目标,其中的输出是条件拆分的默认输出。excel第二个目标使用与第一个目标完全相同的excel连接。所有数据都应该导出到同一工作簿中的不同工作表中

运行此操作失败。如图所示:

[]:

任务在出现错误时过早中止

我收到以下错误代码:

[Excel Destination 1[101]]错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:“Microsoft Office Access数据库引擎”Hresult:0x80004005说明:“无法扩展命名范围。”

[Excel Destination 1[101]]错误:SSIS错误代码DTS_E_诱导传输失败错误。“Excel Destination 1.Inputs[Excel Destination Input]”失败,因为出现错误代码0xC020907B,“Excel Destination 1.Inputs[Excel Destination Input]”上的错误行处理指定错误时失败。指定组件的指定对象上发生错误。在此之前可能会发布错误消息,其中包含有关故障的更多信息

[SSIS.Pipeline]错误:SSIS错误代码DTS_E_PROCESSINPUTFAILED。组件“Excel目标1”(101)上的ProcessInput方法在处理输入“Excel目标输入”(112)时失败,错误代码为0xC0209029。标识的组件从ProcessInput方法返回错误。该错误特定于组件,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关故障的更多信息。 [OLE DB Source[188]]错误:为缓冲区设置行集结尾失败,错误代码为0xC0047020。 [SSIS.Pipeline]错误:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。OLE DB源上的PrimeOutput方法返回错误代码0xC0209017。当管道引擎调用PrimeOutput()时,组件返回了故障代码。故障代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关故障的更多信息


任何帮助都将不胜感激。这让我快发疯了。我不明白为什么在条件拆分中使用一个目标可以很好地工作,但是当我添加第二个目标时,一切都失败了。

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

我有
Hresult:0x80004005描述:“无法扩展命名范围。”
错误,我的问题没有立即显现出来:

  • 我有一个现有的
    将两个Excel文件合并成一个Excel文件
  • 来自一个源的第一列是一个数字。另一个来源是字母数字
  • 我将源代码的第一列从一个新的
    派生列
    更改为字母数字
  • (我忽略了清理目的地-它仍然有现有数据,其中前几行数据是数字的)
  • Union All
    工作正常,但目标失败(源文件也显示红色X)

我通过“截断”excel文件,将其修复为仅返回标题行。(我可以通过将a列中的一些示例行设置回数值来重新创建错误)。我想我现在将使用一个空的Excel文件模板,并首先覆盖目标(除非有?

我与您有类似的问题,只是在随机工作表(任务)上失败了。在花了一个多星期的时间尝试了所有可能的解决方案但没有成功之后,我发现我的计算机上安装了MicrosoftOffice2007(32位),而其他的都是64位。我在服务器上部署并测试了64位的所有内容,效果很好


我不确定这是否是您的情况,但希望它能帮助您。

我收到了这个确切的错误消息。我尝试了其他答案的建议,但没有一个有效

我的问题是,我试图在同一时间写入不同的选项卡


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

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

我不确定您是否可以使用OLE DB同时写入同一工作簿中的两个不同工作表,可以吗?这也是我的想法。重要的错误是“无法扩展命名范围”。您为什么不尝试写入其他工作表,看看它是否会停止错误,只是为了排除故障。