【发布时间】:2014-11-03 16:01:34
【问题描述】:
我们的开发服务器具有带 SSIS 的 SQL Server 2008 R2 64 位。为了能够直接从 T-SQL 导入 XLSX 文件(通过OPENROWSET),我们在开发服务器上安装了Microsoft Access Database Engine Redistributable 64-bit。服务器已经安装了 32 位版本,所以我们安装了 /passive 开关。
自那以后,我们现有的软件包就失败了。其中一个报告
该步骤未生成任何输出。返回值未知。 进程退出代码为 -1066598274。步骤失败。
只是想知道是否其他人已成功配置他们的服务器以能够将OPENROWSET 用于 XLSX 文件并且在同一台服务器上也有 SSIS,或者有人知道这种配置是否可行?
编辑: 我应该补充一点,失败的包是从 SQL 代理作业运行的。当我通过 SQL Server Management Studio 连接到服务器的集成服务管理器并运行包时(通过导航到包,右键单击它并选择运行包),它成功执行。
【问题讨论】:
-
通过在 SSIS 管理器中单击右键运行它和在 SQL 代理中运行它是非常不同的。用户账号不同,包运行位置不同。当您右键单击并运行时,您是登录到服务器还是在远程客户端上?失败时,您是否收到任何“无法获取连接”错误?这个excel连接是唯一的连接吗?
-
specify the DTEXEC command line in SQL Agent to use the 32-bit or 64-bit version 时会发生什么?另请参阅here 以了解选择执行哪个版本的其他可能方式。
-
@Nick.McDermaid "当您右键单击并运行时,您是登录到服务器还是在远程客户端上?"在远程客户端上。 “当连接失败时,您是否收到任何‘获取连接失败’错误?”不。“这个excel连接是唯一的连接吗?”不。问题出在生产服务器上,我们在那里有很多连接。
-
@BaconBits“使用 32 位运行时”在出现错误之前已启用。
-
当您右键单击一个包并在 SSMS 中的 SSIS 节点上运行它时,您就像您自己一样在客户端上运行它。这就是它起作用的原因。我建议您返回源并登录 SSMS 并直接在其中运行您的
OPENROWSETT-SQL。有什么错误吗?如果您只使用 OPENROWSET 从 Excel 中获取数据,那么 DTExec 位数应该是无关紧要的,它是访问 ACE 驱动程序的 SQL Server,而不是 SSIS
标签: sql-server ssis sql-server-2008-r2 aceoledb