2017-03-14 40 views
0

尝试运行SSIS程序包时出现此消息它使用OpenRowSet从使用OLEDB的Excel文件中提取数据。无法为链接服务器“(null)”(在sproc/package/job中使用)初始化OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象

我尝试了一些StackOverflow上提到的不同的解决方案 - 包括:

  • 重新安装OLEDB驱动

  • 检查访问临时文件夹(我改变了Temp文件夹系统变量是一个特定的文件夹,而不是通过用户名+动态获得Everyone访问该文件夹)

  • 在查询窗口中检查OpenRowSet查询的执行情况/执行使用它的存储介质/执行引用sproc的软件包/执行引用上述软件包的作业 - 在我的情况下,我可以让查询直接作为查询运行,我以管理员身份打开SSMS。

我可以摄制的问题在我们的珠三角环境(我们还没有推出这么珠三角有效的测试环境),但不是我们的STG环境。我进行了模式比较以确保跨环境的代码库相同。

我们使用oledb.12驱动程序(而不是oledb.16)并使用驱动程序来获取元数据,然后导入实际记录。

答案,帮助我(我无法找到任何地方在线...)低于

回答

0

在我发现我需要改变本地Windows用户组成员结束。

SQL Server代理作业使用代理运行,该代理使用指向Windows帐户的凭证。

在我们的例子中,STG windows账户是Administrator的一部分,但在PRD上它只在用户(这是为什么模式比较在SQL级别没有区别 - 这是一个Windows操作系统问题)。

尽管事实上错误是指oledb驱动程序,并且我们已将所有权限授予TMP ​​/ TEMP和文件位置,但我们需要更改计算机管理中的用户访问权限以解决问题。

这是我们2天中解决这个问题的3天,所以希望这可以帮助那里的人!

相关问题