用于链接服务器的OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”(null)

问题描述 投票:1回答:2

我试图使用OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”将.xlsx上传到SQL数据库表,但它会引发以下错误:

错误 '无法为链接服务器“(null)”初始化OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象。 OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”用于链接服务器“(null)”返回消息“无法更新。数据库或对象是只读的。”。

我的sql代码是:

'ALTER PROCEDURE [dbo].[spx_ImportFromExcel07]
   @SheetName varchar(20),
   @FilePath varchar(100),
   @HDR varchar(3),
   @TableName varchar(50)
AS
BEGIN
    DECLARE @SQL nvarchar(1000)

    IF OBJECT_ID (@TableName,'U') IS NOT NULL
   SET @SQL = 'INSERT INTO ' + @TableName + ' SELECT [Dealer Number],[Dealer Name],[Policy Number],[Policy Status],[Processing Date (ISO)],
                [Policy Start Date (ISO)],[Request Cancel/ Amend Date],[Amend/Cancel Type],[Cancel/Amend Text],[Chassis Number],[Registration Number],
               [Manufacturer Desc],[Model Desc],[Transmission Desc],[Fuel Type Desc],[Registration Date (ISO) L],[Product Description],
                [User Id],[Customer Full Name],[Sub Total],[Tax],[Customer Charge],null,null,null,null FROM OPENDATASOURCE'
    ELSE
      SET @SQL = 'SELECT * INTO ' + @TableName + ' FROM OPENDATASOURCE'

    SET @SQL = @SQL + '(''Microsoft.ACE.OLEDB.12.0'',''Data Source='
    SET @SQL = @SQL + @FilePath + ';Extended Properties=''''Excel 12.0;HDR='
    SET @SQL = @SQL + @HDR + ''''''')...['
    SET @SQL = @SQL + @SheetName + ']'
    EXEC sp_executesql @SQL
END'

尝试此步骤后http://www.excel-sql-server.com/

错误是

'OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”用于链接服务器“(null)”不包含表“Sheet1 $”。该表不存在或当前用户没有该表的权限。

asp.net sql-server xlsx oledbconnection
2个回答
0
投票

检查.xlsx文件上的(Windows)文件访问权限。

创建该文件的(Windows)用户很可能与OLEDB驱动程序用于访问该文件的(Windows)用户不同。当您使用Windows Authentication登录到sql sever时具有写访问权限时通常会出现这种情况,但在使用SQL Server Authentication时却没有。

转到Windows资源管理器中的文件并执行以下操作

  1. 右键单击并选择属性。
  2. Security选项卡中,单击Edit...
  3. Group or user name:选择组Users(<<your-computer-name>>\Users)
  4. Permissions for Users检查Allow Write
  5. 单击OK以保存更改。

这将允许任何用户具有对文件的写访问权,从而启用insert into链接的服务器表。


0
投票

这是一个安全问题,您应该对excel模板的文件夹和目标文件夹提供完全访问权限

© www.soinside.com 2019 - 2024. All rights reserved.