【问题标题】:Import data from XLS file to SQL Server 2008 R2 database将 XLS 文件中的数据导入 SQL Server 2008 R2 数据库
【发布时间】:2018-03-16 21:35:27
【问题描述】:

这是我们的情况:

我们有:

  • SI = 64 位 Windows Server 2008 R2 标准版
  • DB = SQL Server 2008 R2

此服务器上未安装 Microsoft Office 软件包(我们无法打开 .xls、.ppt、.doc 等)

我们尝试使用向导导入 Excel 97-2003 文件,一切正常!

问题是:我们需要执行一个带有一些控件的查询,将 Excel 文件中的数据导入我们的数据库。

SELECT * 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\file.xls', 'SELECT * FROM [Clienti$]')

但我们得到以下错误:

消息 7308,第 16 层,状态 1,第 1 行
OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”不能用于分布式查询,因为该提供程序配置为在单线程单元模式下运行。

我们已经在guide之后配置了一些选项

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO

【问题讨论】:

  • 你为什么不使用 SSIS 来代替?这是加载转换数据的最简单方法。这就是向导使用的。您甚至可以保存向导生成的包并对其进行编辑。这将为您提供比对单个文件运行查询更多的控制权。例如,您可以使用 File 迭代器容器将所有 .xls 文件加载到特定文件夹中,然后将它们移动到存档文件夹。

标签: sql-server excel sql-server-2008-r2


【解决方案1】:

不幸的是this thread

64 位操作系统不支持 Microsoft.Jet.OLEDB.4.0。

另外this link 可能有助于解决问题。

尝试将“Microsoft.Jet.OLEDB.4.0”更改为“Microsoft.ACE.OLEDB.12.0”?

【讨论】:

  • x64 操作系统支持,只要安装正确的驱动即可。
  • 此外,该错误与位数完全无关。驱动程序已加载,否则错误会有所不同
猜你喜欢
  • 1970-01-01
  • 2013-12-11
  • 2013-02-01
  • 1970-01-01
  • 2016-05-18
  • 1970-01-01
  • 2012-02-18
  • 2010-09-22
  • 2014-05-18
相关资源
最近更新 更多