SSIS 和 64 位 Excel

Posted

技术标签:

【中文标题】SSIS 和 64 位 Excel【英文标题】:SSIS and 64bit excel 【发布时间】:2014-03-14 12:23:33 【问题描述】:

我对此进行了彻底的研究,但我还没有找到满意的答案。

我正在使用 SQL Server Data Tools 2010 和 Microsoft Office 2013 64 位。我知道存在兼容性问题,我正在尝试解决它,因为我知道您可以将 .xlsx 文件用作数据流中的数据源。

首先我尝试在 Project -> Properties -> Configuration Properties -> Debugging 中将 Run64BitRuntime 设置为 False,但没有成功

每当我尝试导入 .xlsx 文件时,都会遇到同样的错误

 Microsoft Visual Studio
------------------------------

Could not retrieve the table information for the connection manager
'Source Path'. Failed to connect to the source using the connection
manager 'Source Path'

------------------------------ 

所以我尝试按照许多人的建议下载“Microsoft Access 数据库引擎 2010”。 64位安装成功但32位返回如下错误

You cannot install the 32-bit version of Microsoft Access database engine 2010
because you currently have 64-bit Office products installed.

现在我知道我在这里遗漏了一个步骤,因为我可以在控制面板的已安装程序列表中看到“Microsoft Access 数据库引擎 2010”,但当我尝试创建一个新的连接管理器。

所以在我按照blog 的说明进行操作之前,我想确保没有更简单的方法可以解决问题

提前感谢您的宝贵时间。

【问题讨论】:

因为 Visual Studio 是 32 位的,所以您需要 32 位的 office/excel 驱动程序。而且因为您不能同时安装 32 位和 64 位驱动程序,所以您遇到了问题。解决方案: - 使用常规的 32 位 office(或者最好不要在装有 SQL Server 的机器上使用 office) - 不要在 SSIS 中使用 excel 作为源。 【参考方案1】:

如果您的机器是 x64,请忘记 Excel,因为没有可用的驱动程序。 只需将文件转换为 CSV 并改用平面文件连接器。

【讨论】:

【参考方案2】:

好的,答案非常简单,以至于我现在为这篇文章感到羞耻。

如果您使用的是 Microsoft Office 2013 64 位并希望使用 SSIS,您必须下载并安装 32 位 Microsoft Access Database Engine 2010 Redistributable,而不是 64 位,请将 Run64BitRuntime 设置为 False一切都会像魅力一样发挥作用。

【讨论】:

以上是关于SSIS 和 64 位 Excel的主要内容,如果未能解决你的问题,请参考以下文章

SSIS连接

通过 SSIS 访问 Oracle 视图时出错

visual studio 2008 (ssis连接oracle数据库)未在本地计算机上注册OraOLEDB.Oracle.1

确定当前的 PowerShell 进程是 32 位还是 64 位?

64 位 windows server 2008 中的 32 位 informix 驱动程序不可用

sql server 作业中的 ssis 包出错