单击Excel源任务的“Excel工作表的名称”时出现“未指定的错误”

时间:2010-12-24 17:17:08

标签: ssis

我创建了一个Excel连接。当我使用Excel目标创建数据流并单击“Excel工作表的名称”时,我收到“未指定的错误”。当我查看目的地的“显示高级编辑器”时,我看到以下错误:

Error at blah [Connection manager "DestinationConnectionExcel"]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.

An OLE DB record is available. Source: "Microsoft JET Database Engine" Hresult: 0x80004005 Description: "Unspecified error". Error at Insert blah [Destination - blah [199]]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "DestinationConnectionExcel" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. Exception from HRESULT: 0xC020801C (Microsoft.SqlServer.DTSPipelineWrap)

我已阅读了大量其他帖子,似乎没有任何帮助。我已经尝试在所有Jet Engine相关任务上设置'DelayValidation = True'。虽然这允许我运行包没有任何错误,但我无法编辑或更改任何内容。我也无法使用Excel创建新任务。

我已经尝试设置'Run64BitRuntime = false',这也没有帮助。

另一个注意事项,问题是间歇性的。我已经能够在重新启动后一次使用Excel任务很好,然后另一次它完全失败,正如我所描述的那样。

任何帮助将不胜感激。谢谢大家

3 个答案:

答案 0 :(得分:3)

我遇到了类似的问题,对我来说分辨率是双重的。首先,确保在您的开发机器上正确注册了某些dll:

SSIS 2005: Using Execute SQL Task to work with Excel Connection Manager

转述
  

请检查以下文件是否存在:

     
    

C:\ Windows \ System32下\ ODBCJT32.DLL

         

C:\ Windows \ System32下\的Msjet40.dll

         

C:\ Windows \ System32下\ msexcl40.dll

         

C:\ Program Files \ Common Files \ System \ Ole DB \ oledb32.dll

         

C:\ Program Files \ Common Files \ System \ ado \ msado15.dll

  
     

如果是,请手动注册。从命令提示符运行以下每个命令:

     
    

Regsvr32“C:\ Program Files \ Common Files \ system \ Ole DB \ oledb32.dll”

         

Regsvr32“C:\ Program Files \ Common Files \ system \ ado \ msado15.dll”

         

Regsvr32“C:\ windows \ system32 \ msjet40.dll”

         

Regsvr32“C:\ windows \ system32 \ msexcl40.dll”

  

然后,更新SSIS包中引用的任何文件夹/文件路径。我不断更改 Excel连接管理器对象以指向正确的文件,但更改永远不会“坚持”。另一位开发人员指示我查看SSIS包中的变量列表。右键单击包设计器中的任意位置,然后选择“变量”(基于2008版本)。在变量列表中,检查是否有正在使用的路径。如果找到,请验证它们是否存在于您的计算机上或更改它们以使用您自己的本地路径。

按照这两个建议后,我可以打开Excel文件并在 Excel连接管理器窗口中选择目标表。并且,SSIS包在我的本地环境中成功运行。

答案 1 :(得分:1)

我认为excel工作簿的路径是正确的吗?当我打开并保存我在Excel中用作目的地的excel工作簿时,我也遇到了问题。我认为如果您从SSIS内部创建工作簿,它可能会使用Office Web工具。也许您可以尝试在SSIS中重新创建工作簿。

答案 2 :(得分:0)

我遇到了类似的问题,确保连接管理器连接到MicrosoftExcel-64位,这与SQL SSIS版本相同。 否则,请在链接服务器中添加Microsoft.ACE.OLEDB.12.0提供程序,而不是在本地计算机中。

并检查您的服务器中是否存在Microsoft Excel,而不是本地计算机

如果本地机器和SQL Server安装在同一台机器上,那就好了。