访问Sql server上的Oracle数据

时间:2017-04-24 16:45:06

标签: sql-server oracle odbc linked-server

我需要在 SQL Server 实例上创建链接服务器以从 Oracle 获取数据,但我发现它很难。

我设置了ODBC Oracle并且连接测试成功,但是当我尝试在SQL Server中创建链接服务器时,会出现以下消息。

代理服务和MSSQLSERVER的用户是LocalSystem

  

无法初始化OLE DB提供程序的数据源对象" MSDASQL"   对于链接服务器" 10.40.22.7"。 OLE DB提供程序" MSDASQL"为了链接   服务器" 10.40.22.7"返回消息"指定的驱动程序不能   因系统错误而加载1114:动态链接库(DLL)   初始化例程失败。 (OraClient12Home1中的Oracle,G:\ app \   client \ adm_bds \ product \ 12.1.0 \ client_1 \ SQORA32.DLL)。 "   (Microsoft SQL Server,错误:7303)

简介文件夹中的文件存在。

3 个答案:

答案 0 :(得分:1)

Oracle版本无关的问题。

在安装MS SQL server之后重新启动ODAC服务。

MS SQL service必须刷新安装ODAC之后添加的环境变量。

答案 1 :(得分:0)

鉴于它是> 1年前,这可能不会帮助法比亚诺,但可以帮助其他人......

遇到同样的问题,结果证明是SQORA32.DLL 的权限设置以及SQORA32依赖的的DLL。 运行MSSQLServer进程的帐户需要具有该文件夹中所有相关DLL的读/执行权限。 (使用任务管理器识别帐户)

将帐户添加到SQORA32.DLL所在文件夹的安全设置,并让文件夹中的所有文件继承权限。

如果您更改了文件夹权限并且仍然遇到错误消息,请确保其他文件没有禁用权限继承。我的文件没有继承文件夹权限(因为某些天才禁用了它),尽管给了SQORA32.DLL正确的权限设置,同样的错误信息仍然弹出并抱怨SQORA32.DLL。事实证明,错误信息是一个红色的鲱鱼;是依赖的DLL没有正确的权限设置。

〜DES

答案 2 :(得分:0)

我的问题是包含 SQORA32.DLL 的文件夹不在 PATH 中。将其添加到系统PATH并重新启动sql server后,连接建立,没有错误。