BIDS-写入Excel 2007(xlsx)文件时SSIS中出现OLEDB连接错误



在过去的几天里,我遇到了一个众所周知的错误,但我不明白我需要做什么,即使在阅读了这么多不同的解决方案之后。但请让我从任务开始。

4-5年前,一位前任使用SQL Server Data Tools(2005)创建了一个业务关键型SSIS包,该包基本上读取数据库中的一个大表,然后明确地隔离数据,并将数据泵送到同一数据库中的不同表中。最后,它从这些分离/分类的数据表中读取数据,并将数据导出到同一文件夹中网络驱动器中的相应Excel文件中。所有这些表都有不同的数据字典。所有这些Excel文件都是97-2003格式(.xls)。

生产服务器是SQL 2005和Windows 2003。使用SQL Server 2012和Windows 2012创建了一个新的开发环境,我需要在其中迁移所有数据库、SQL作业和SSIS包。它们中的大多数已经完成,并且正在顺利运行。我把复杂的SSIS包留到最后,这样我就可以把一些东西交给业务部门进行测试。

现在我的任务是升级包以写入Excel2007xlsx文件。数据库级别没有更改。因此,我为所有Excel文件创建了OLE DB连接,当单击"连接"对话框中的"测试连接"时,连接似乎工作正常。所有这些Excel文件都位于开发人员SQL Server中与SSIS包相同的文件夹(\DevServer\p$\SSSIS_Jobs\Process_Data)中。我在连接管理器中设置了Extended Properties=Excel 12.0 XML。但当我在BIDS中运行包时,我会得到

无法获取连接"Excel07_Con1"。可能未配置连接,或者您可能没有此连接的正确权限。

该软件包设置为32位模式,安装的MSOffice为32位,并安装了Microsoft Access数据库引擎2010(32位)驱动程序。Dev Network驱动器拥有EveryOne to ReadWrite的完全权限。

由于这是过程中的最后一步,因此整个工作都失败了。我肯定看过很多类似问题的回答。如有任何帮助,我们将不胜感激。

谢谢-Madhu

您检查过项目属性吗?以下属性Runas64Bit在BIDS中的项目可能设置为TRUE。

感谢您的回复,我已经通过在SSDT2012中从头开始重新创建包解决了这个问题。现在这个方案正在发挥作用。我怀疑可能是Excel驱动程序。

再次感谢您抽出时间。-Madhu

最新更新