SSIS 项目错误:无法检索连接管理器“excel 连接管理器”的表信息

Posted

技术标签:

【中文标题】SSIS 项目错误:无法检索连接管理器“excel 连接管理器”的表信息【英文标题】:SSIS project error: could not retrieve the table information for the connection manager 'excel connection manager' 【发布时间】:2017-04-04 23:14:22 【问题描述】:

我是 SSIS 的新手。对于我的实践,我想将数据从 excel 传输到 SQL Server。

    我已经为 MS SQL Server 创建了一个连接管理器(通过选择 OLE DB 连接的连接管理器)

    EXCEL 文件的另一个连接管理器

    我已将一个 Excel 源添加到数据流中。

    现在,我正在尝试编辑 Excel 源,以便查看 Excel 文件中的数据,这会引发以下错误。

"无法检索连接管理器'excel连接管理器'的表信息无法使用连接管理器连接到源..."

在搜索了很多内容(包括 *** 帖子)之后,我发现了这个错误的几个原因和修复方法。

    SQL 数据工具仅在 32 位版本中可用。所以,安装“Microsoft Access Database Engine 2010”

    更改 DataMigration 属性页面配置。将 Run64BitRuntime 更改为 False。

    将 Excel 连接管理器选项“Excel 版本”更改为“Microsoft Excel 97-2003”以及其他选项。

    确保我尝试从中提取数据的 excel 文件在执行所有这些操作时未打开。

    将 DelayValidation 属性设置为 true

尝试了在 Internet 上找到的所有选项,但没有任何效果。现在,无论如何,我只想解决这个问题。任何解决此问题的建议将不胜感激。

【问题讨论】:

前两天我也遇到了同样的问题。你找到解决方案了吗。如果是,请发布答案... @DineshDB 您可能已经找到了解决方案。但是请在下面找到我的答案,如果在安装所有驱动程序后仍然遇到问题,它将用于其他用途 @DineshDB ,您找到解决方案了吗?请让我知道是否有任何替代方式 【参考方案1】:

问题是 Excel 数据源是 Office 2007,低于 Office 2010 的版本。在这种情况下,需要单独的驱动程序:2007 Office System 驱动程序:数据连接组件。

下载并安装:

http://www.microsoft.com/download/en/confirmation.aspx?id=23734

【讨论】:

链接已过期【参考方案2】:

如果您有 32 位版本的 Office,请下载 32 位驱动程序,否则请下载 64 位驱动程序。 它对我有用,我刚刚安装了这个文件,32 位 (https://www.microsoft.com/en-za/download/confirmation.aspx?id=13255)

希望这可以帮助您解决问题

【讨论】:

【参考方案3】:

在尝试了问题中提到的所有以下可能的解决方案后,令人沮丧的是,我决定卸载 SSDT 并重新安装它,它对我有用,但仍然必须遵循下面的前 2 条建议。

SQL 数据工具仅在 32 位版本中可用。所以,安装“Microsoft Access Database Engine 2010”

更改 DataMigration 属性页面配置。将 Run64BitRuntime 更改为 False。

将 Excel 连接管理器选项“Excel 版本”更改为“Microsoft Excel 97-2003”以及其他选项。

确保我尝试从中提取数据的 excel 文件在执行所有这些操作时未打开。

将 DelayValidation 属性设置为 true

【讨论】:

【参考方案4】:

在到处研究之后,我终于找到了临时解决方案。因为我已经尝试了所有安装访问驱动程序的解决方案,但我仍然面临同样的问题。

对于excel源, 在此步骤之前,您需要更改设置。将excel文件另存为2010格式.xlsx

同时设置用于调试的项目配置属性 Run64BitRuntime = False

    拖放 Excel 源代码 双击excel源并连接excel。任何方式你都会得到同样的错误 no table or view cannot load.... 点击确定 右键单击excel源,点击显示高级编辑。 在那点击组件属性。 您可以看到 openrowset。在右侧,您需要输入您的 excel 工作表名称示例:如果在 excel sheet1 中,则您需要输入 sheet1$。即以美元符号结尾。然后点击确定。 现在您可以执行连接到目的地的其他工作。

我正在使用 Visual Studio 2017、SQL Server 2017、Office 2016 和 Microsoft Access Database 2010 引擎 32 位。操作系统 Windows 10 64 位。

这是临时解决方案。因为很多人都在寻找这类问题。最后我想通了,这个解决方案在任何网站上都没有。

【讨论】:

你找到其他替代品了吗? 我没有。但我现在只使用这种方法。对我来说工作正常 哦,我想我错过了一件事。我还没有安装Microsoft access database 2010 engine 32bit。这是免费软件吗?或所需的任何许可证。我必须在我的办公机器上安装它。 Windows server 2012? 是的,你需要安装。它是免费的【参考方案5】:

对我来说,它通过卸载 Microsoft Access Database Engine 2010 64 位并安装 32 位来工作。仅供参考,我在 Win10 和 Excel 64 位上运行 VS2019 32 位。

【讨论】:

【参考方案6】:

我在我的 PC 和 SSIS 中使用 Excel 2019 版:Excel 源代码编辑器未显示 2019 版可供选择。因此,我选择了 2016 作为最高版本。

这是我犯的错误。

我将我的 excel 文件保存在 PC 的 MS EXCEL 97-2003 工作表中,并在 Visual Studio 的 EXCEL SOURCE EDITOR 中选择了相同的版本,即 MS EXCEL 97-2003。

解决方法:我们必须选择与我们PC上使用的Excel版本完全相同的版本,并在Visual Studio的excel源代码编辑器中选择相同的版本。

【讨论】:

【参考方案7】:

由于 Visual Studio 是 32 位,请安装 Microsoft Access Database Engine 2010 Redistributable 32 位版本以从以下链接启用 excel 驱动程序

https://www.microsoft.com/en-us/download/details.aspx?id=13255

【讨论】:

【参考方案8】:

现在,我有这个问题的解决方案。 我正在使用 Visual Studio 2015、MS Excel 2016、OS Window 11 64 位,我什至没有更改我的 DelayValidation 属性。

    安装 Microsoft Access Database 2010 32 位引擎。 拖放 Excel 组件。 双击组件并选择扩展名为 .xlsx 的路径。 选择Excel 2007-2010 版

终于想通了,希望你能理解。

【讨论】:

【参考方案9】:

只需安装 Microsoft Access 数据库 2010 引擎 32 位就可以使用它为我工作的相同过程,仅供参考,我有 VS2019,Excel 64 位

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案10】:

简单的解决方法。打开另存为 Excel 97-2003 工作簿的 Excel 数据源,并在 SSIS Excel 连接管理器中将 Excel 版本指定为 Excel 97-2003。

【讨论】:

它对我有用,但这不是解决方案,因为客户端正在生成 xlsx 文件并且它不起作用

以上是关于SSIS 项目错误:无法检索连接管理器“excel 连接管理器”的表信息的主要内容,如果未能解决你的问题,请参考以下文章

SSIS 错误:无法从 SQL 命令的参数中检索目标列描述

在 SSIS 中将数据写入 Excel 文件时出现无法解释的错误

SSIS Excel连接“无法加载任何表或视图”

SSIS在Unicode和非Unicode错误之间转换

SSIS Excel 连接管理器:文件只能在选择了错误的 Excel 版本时才能读取

除非手动保存,否则无法使用 SSIS 打开 excel 文件