ASi*_*uat 5 sql-server ssis etl ms-jet-ace ssis-2012
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)
Run Code Online (Sandbox Code Playgroud)
今天,我遇到了SSIS 2012中Microsoft.ACE.OLEDB.12.0驱动程序的问题。上面的脚本位于存储过程中,该存储过程根据SSIS循环中提供的当前文件将.csv动态加载到数据库中。哪个存储过程位于。目录中有文件。
直接在SQL Server Management Studio中运行时,存储过程可以正确运行。
直到今天,它一直工作良好。今天,我收到以下错误:
执行查询“ EXEC [dbo]。[CreateAndImportCSVs]?” 失败,并出现以下错误:“无法为链接服务器“(null)”初始化OLE DB访问接口提供程序“ Microsoft.ACE.OLEDB.12.0”的数据源对象。”。可能的失败原因:查询问题,“ ResultSet”属性未正确设置,参数未正确设置或连接未正确建立。
在这个问题上的任何帮助将是巨大的!
编辑
因此,看看发生了什么变化,昨天我查看服务器上安装的Windows Update时会听到警钟!安装了以下两个:
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
这个问题自行解决了。安装了更多更新,其中之一必须解决了先前更新引入的问题:
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
感谢您对此提供的所有帮助!