DECLARE @PATH NVARCHAR(1000) = N'\\MY-SERVER\C$\Folder\\'
DECLARE @TABLE NVARCHAR(50) = SUBSTRING(@FILENAME,0,CHARINDEX('.',@FILENAME))
DECLARE @SQL NVARCHAR(4000) =
N'IF OBJECT_ID(''dbo.' + @TABLE + ''' , ''U'') IS NOT NULL
DROP TABLE dbo.[' + @TABLE + ']
SELECT * INTO [' + @TABLE + ']
FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0''
,''Text; Database='+@PATH+';''
,''SELECT * FROM [' + @FILENAME + ']'')'
EXEC(@SQL)
今天我在SSIS 2012中遇到了Microsoft.ACE.OLEDB.12.0驱动程序的问题。上面的脚本位于一个存储过程中,该存储过程根据当前文件将.csv动态加载到数据库中。存储过程所在的SSIS循环。目录中有文件。
直接在SQL Server Management Studio中运行时,存储过程可以正常运行。
直到今天,这一直很好。今天我收到以下错误:
执行查询“EXEC [dbo]。[CreateAndImportCSVs]?”失败,出现以下错误:“无法初始化OLE DB提供程序的数据源对象”Microsoft.ACE.OLEDB.12.0“链接服务器”(null)“。”。 可能的故障原因:查询问题,“ResultSet”属性设置不正确,参数设置不正确或连接未正确建立。
对这个问题的任何帮助都会很棒!
修改
因此,当我查看昨天安装在服务器上的Windows更新时,我会看到发生了什么变化!安装了以下两个:
Microsoft Office Access运行时和数据连接2007(SP3) http://support.microsoft.com/kb/2526310
2007 Microsoft Office System更新(KB967642) http://www.microsoft.com/downloads/details.aspx?FamilyId=E93AB1BE-ADE6-4FF8-8637-DBD3EBE3C5C5&displaylang=en
答案 0 :(得分:2)
要尝试的很多事情:
pressures = [log(record['air_pressure']) for record in data]
进程未在后台运行确保'临时分布式查询'已启用(1)
EXCEL
在How to solve Microsoft.ACE.OLEDB.12.0 error "Unspecified error"
了解详情此外,我在以下链接中找到了一个有趣的建议解决方案,请看一下:
答案 1 :(得分:2)
此问题自行解决。安装了进一步的更新,其中一个必须修复先前更新引入的问题:
Microsoft Office 2010更新(KB4011188)64位版 https://support.microsoft.com/kb/4011188
Microsoft Office 2010更新(KB2553347)64位版 http://support.microsoft.com/kb/2553347
Microsoft Office 2010安全更新(KB2553338)64位版 https://support.microsoft.com/kb/2553338
感谢您的帮助!
答案 2 :(得分:1)
为我解决这个问题的最后一块是将电子表格移动到 SQL Server 能够访问的 Windows 目录。我将我的电子表格移动到了一个新的子目录,在我的 sql 数据库所在的直接位置,问题解决了。
答案 3 :(得分:0)
可能不是解决方案,但你应该用:
执行SQLsp_executesql @SQL
它可以防止注射和伤害。