oracle SSIS 2008 Excel 目标连接错误 - 0x80040E37
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/18233114/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
SSIS 2008 Excel Destination Connection error - 0x80040E37
提问by Eric
I have an SSIS package (created in BIDS 2008). The package has a data flow task. Inside the data flow task I have an ADO NET Source and an Excel Destination.
我有一个 SSIS 包(在 BIDS 2008 中创建)。包有一个数据流任务。在数据流任务中,我有一个 ADO NET 源和一个 Excel 目标。
I am connectiong to an Oracle DB, running a query, and then droping the results into an excel file on a different server. In order to connect to the Oracle DB I needed to create a system DSN for my connection. For the excel connection I am using the "table or view" drop down option and create a create table query that grabs the ouput from my sql query in the ADO NET connection.
我连接到 Oracle DB,运行查询,然后将结果放入不同服务器上的 excel 文件中。为了连接到 Oracle DB,我需要为我的连接创建一个系统 DSN。对于 excel 连接,我使用“表或视图”下拉选项并创建一个创建表查询,该查询从 ADO NET 连接中的 sql 查询中获取输出。
Now if I drop the excel file on my local drive it works fine. But the end goal is to have this package drop onto a different server. So when I change the location on the excel connection to a different server (which I have access to) it doesnt work. When I open up the excel task and hit preview I get the following error-
现在,如果我将 excel 文件放在本地驱动器上,它就可以正常工作。但最终目标是将这个包放到不同的服务器上。因此,当我将 excel 连接上的位置更改为另一台服务器(我可以访问)时,它不起作用。当我打开 excel 任务并点击预览时,出现以下错误 -
TITLE: Microsoft Visual Studio
标题:Microsoft Visual Studio
Error at Data Flow Task [Excel Destination [16]]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E37.
数据流任务 [Excel 目标 [16]] 中的错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E37。
Error at Data Flow Task [Excel Destination [16]]: Opening a rowset for "Excel_Destination" failed. Check that the object exists in the database.
数据流任务 [Excel 目标 [16]] 中的错误:打开“Excel_Destination”的行集失败。检查对象是否存在于数据库中。
ADDITIONAL INFORMATION:
附加信息:
Exception from HRESULT: 0xC02020E8 (Microsoft.SqlServer.DTSPipelineWrap)
来自 HRESULT 的异常:0xC02020E8 (Microsoft.SqlServer.DTSPipelineWrap)
BUTTONS:
纽扣:
OK
好的
I cannot find any resolutions for this problem. Now the ADO NET connection still works and if I hit preview on the query for the ADO NET source task I still get the desired data.
我找不到此问题的任何解决方案。现在 ADO NET 连接仍然有效,如果我在查询 ADO NET 源任务时点击预览,我仍然可以获得所需的数据。
Would I need to add the DSN name to the server where I am dropping the excel file? Or is it better to drop the file on the local machine and then ftp the file to the other server?
我是否需要将 DSN 名称添加到要删除 excel 文件的服务器?或者最好将文件放在本地机器上,然后将文件 ftp 到另一台服务器?
采纳答案by S.M
Whether you populate the data in excel file in local drive in local machine or remote drive via mapped drive to the server. the excel file with referencing sheet named "Excel_Destination" should exists on that location for SSIS package to write the data into that file.
无论您是将excel文件中的数据填充到本地机器的本地驱动器中,还是通过映射驱动器到服务器的远程驱动器中。带有名为“Excel_Destination”的引用表的 excel 文件应该存在于该位置,以便 SSIS 包将数据写入该文件。
The approach to write the file on the local drive then distribute it through ftp or batch script which copy this file looks OK in your case. You can write two package one writing excel file on the local drive and another one package which push or pull the file from/to local drive which can be scheduled.
在本地驱动器上写入文件然后通过 ftp 或批处理脚本分发它的方法,复制这个文件在你的情况下看起来没问题。您可以编写两个包,一个在本地驱动器上写入 excel 文件,另一个包将文件从/到本地驱动器推送或拉取到可以调度的本地驱动器。