【问题标题】:Trying to Load Data from Excel into SQL Server. 32-bit Excel and 64-bit SQL Server Throws Error试图将数据从 Excel 加载到 SQL Server。 32 位 Excel 和 64 位 SQL Server 引发错误
【发布时间】:2016-05-19 21:38:41
【问题描述】:

我尝试了几种不同的方法将数据从 Excel 加载到 SQL Server,如下所示:

Use [TestDatabase]

SELECT * 
INTO dbo.tbl_SST_Personnel
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
       'Excel 12.0 Xml;HDR=YES;Database=C:\Users\rshuell001\Desktop\DATA - INPUT FILES\STT_Personnel.xlsx',
       'SELECT * FROM [tbl_SST_Personnel]')
GO

insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\Users\rshuell001\Desktop\DATA - INPUT FILES\STT_Personnel.xlsx;', 'SELECT * FROM [tbl_SST_Personnel]')

select * from tbl_SST_Personnel

Insert into tbl_SST_Personnel 
    Select * 
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\Users\rshuell001\Desktop\DATA - INPUT FILES\STT_Personnel.xlsx;HDR=YES', 'SELECT * FROM [tbl_SST_Personnel]')

我不断收到前 2 个脚本的此错误消息。

消息 7438,第 16 层,状态 1,第 13 行
32 位 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”无法在 64 位 SQL Server 的进程中加载​​。

第三个脚本抛出这个错误:

消息 7302,第 16 级,状态 1,第 14 行
无法为链接服务器“(null)”创建 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的实例。

知道我怎样才能让它工作吗?

谢谢大家。

【问题讨论】:

标签: sql-server


【解决方案1】:

您无法从 64 位 SQL Server 调用 32 位提供程序,反之亦然。


所以,您有以下任何一种选择:

  1. 64 位办公室
  2. 32 位 SQL Server 2008
  3. 32 位 SQL Server 2012

但是,就我个人而言,我真的不喜欢使用 T-SQL 将 excel 文件数据导入 SQL Server 表中。

在现实世界中,SSIS 在处理 Excel 文件导入方面比 T-SQL 灵活得多。如果您使用 SSIS 将 Excel 中的数据导入 SQL Server,那么如果您有 32 位 Office 和 64 位 SQL Server,则没有问题。

您可以在 32 位调试模式下运行 SSIS,即设置 SQL 代理作业以在 32 位模式下运行 SSIS 作业。

【讨论】:

猜你喜欢
  • 2016-08-16
  • 2011-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多