Excel和SSIS集成挑战错误:无法扩展命名范围

时间:2015-04-30 15:16:58

标签: excel ssis sql-server-2012 ssis-2012

  

错误消息:Microsoft.SqlServer.Dts.Runtime.TaskHost / Excel中出错   目的地[22]:SSIS错误代码DTS_E_OLEDBERROR。 OLE DB错误   已经发生了。错误代码:0x80004005。 OLE DB记录可用。   来源:" Microsoft Office Access数据库引擎" Hresult:0x80004005   说明:"无法扩展命名范围。"。

     

Microsoft.SqlServer.Dts.Runtime.TaskHost / Excel目标中的错误   [22]:SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR。该   " Excel Destination.Inputs [Excel目的地输入]"失败是因为   发生错误代码0xC020907B,并且错误行处置开启   " Excel Destination.Inputs [Excel目的地输入]"指定失败   出错了。指定的指定对象发生错误   零件。在此之前可能会发布错误消息   有关失败的信息。

任务:尝试将SQL数据导出到多个Excel电子表格。每个州都是一张纸。在单个excel文件中,50个州将是50个excel电子表格。

我是如何做到这一点的: 1.脚本任务:检查excel文件是否存在,如果存在则删除该文件。 2.使用excel连接管理器(2007)的SQL任务将创建excel文件/表。我在容器中有50个sql任务,这些任务只是在同一个文件中创建新工作表。 Excel连接管理器2007具有Provider = Microsoft.ACE.OLEDB.12.0。

的表达式

表达式:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +  @[User::DynExcelFilename] + ";Extended Properties=\"Excel 12.0 XML;HDR=YES\";"

@DynExcelFilename
"\\ABC_" + (DT_WSTR,4) YEAR( GETDATE()  )  + "_" +
 (DT_WSTR,2) MONTH( GETDATE()  )  + "_" +  (DT_WSTR,2) DAY( GETDATE()  ) + ".xlsx"

每天都是动态文件名。 3.数据流任务>带有SQL查询的OLE源和Excel目标连接到Excel连接管理器。我有50个数据流任务将数据推送到多个电子表格(因为文件和已经在#2中创建了多个表格)..我在这里使用它们。

这项使用的工作完全正常,直到最近才进行服务器升级并添加了SQL 2012& SSDT 2012包装。从那时起我就犯了错误。

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:0)

我在另一篇文章中找到了答案。我试图从同一个数据流任务写入多个工作表。为每个工作表创建不同的数据流任务解决了问题!

Creating SSIS Package in SSDT. Conditional Split in Data Flow Task Causes Package To Break

答案 1 :(得分:0)

由于另一个问题,我遇到了同样的问题。我不得不将有序计数导出到excel中,但这些数字一直保存为文本。我找到了一个解决方案,其中包括一个带有正确类型变量的虚拟行。问题是,虚拟行可能会以某种方式干扰有序列表。当我删除它时,一切都得到了解决。