【问题标题】:Access Oracle data on Sql server访问 Sql server 上的 Oracle 数据
【发布时间】:2017-09-21 11:07:28
【问题描述】:

我需要在 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) 初始化例程失败。 (Oracle 在 OraClient12Home1,G:\app\ 客户端\adm_bds\产品\12.1.0\client_1\SQORA32.DLL)。 " (Microsoft SQL Server,错误:7303)

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

【问题讨论】:

  • 检查this link
  • 这行不通:(
  • 检查 Windows 事件日志以获取更多详细信息,初始化例程失败时发生了什么。
  • 另外,请确保您已将所有包含 Oracle 系统组件的文件夹添加到 PATH 环境变量。可能 MS SQL 服务器无法在初始化过程中找到 dll 依赖项。

标签: sql-server oracle odbc linked-server


【解决方案1】:

考虑到 > 1 年前,这可能不会帮助 Fabiano,但可能会帮助其他人......

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

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

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

~des

【讨论】:

    【解决方案2】:

    Oracle 版本无关问题。

    安装ODAC后重启MS SQL server服务。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多