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 中将数据写入 Excel 文件时出现无法解释的错误