加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle11g – 连接到10g和11g数据库的Oracle 11g客户端

发布时间:2020-12-12 16:23:47 所属栏目:百科 来源:网络整理
导读:我看过一些帖子说Oracle 11g Client(适用于 Windows)适用于高达9.2的数据库.但是,如果客户端有时连接到11g,有时连接到10g数据库,它仍然可以工作吗?我的问题是:连接到10g和11g数据库时,有什么不同的配置吗? 有些人告诉我有关GAC的政策. 谢谢 ! 使用较新的
我看过一些帖子说Oracle 11g Client(适用于 Windows)适用于高达9.2的数据库.但是,如果客户端有时连接到11g,有时连接到10g数据库,它仍然可以工作吗?我的问题是:连接到10g和11g数据库时,有什么不同的配置吗?

有些人告诉我有关GAC的政策.

谢谢 !

使用较新的客户端驱动程序连接到较旧的Oracle数据库通常没有问题,例如使用12g客户端连接到10g或11g数据库.答案的其余部分属于技术问题,如果在执行程序的计算机上已经安装了Oracle客户端(可能),则可能会出现在.Net程序中.

2014年更新:

与此同时,Oracle已经为Oracle数据库发布了一个托管的.Net驱动程序.因此,不是安装本地Oracle客户端或与您的应用程序一起提供Instant Client,首选方法应该是仅提供托管驱动程序而不依赖于本地配置.然后,您可以轻松安装客户端,GAC,Oracle数据库版本等.您可以从the Oracle website下载托管驱动程序.

以前的答案,如果您不能使用托管驱动程序仍然需要:

如果您不知道客户端工作站上是否安装了Oracle客户端,则会出现问题.如果您在谈论GAC,我认为,您不知道是否安装了Oracle客户端,如果安装了Oracle客户端,那么它是哪个版本.

如果您不想依赖已安装的Oracle客户端,则可以使用.Net应用程序提供Oracle Instant Client.例如,您可以下载ODAC 11.2 Release 4 (11.2.0.3.0) with Oracle Developer Tools for Visual Studio,它为您的开发人员工作站(使用Visual Studio支持DataSet开发和EntityFramework)以及即时客户端所需的所有文件提供Oracle客户端安装.

对于即时客户端,您需要以下文件(在ODAC安装的子文件夹中搜索它们):

> oci.dll
> ociw32.dll
> Oracle.DataAccess.dll
> orannzsbb11.dll
> oraociicus11.dll(如果您使用的是英语,请使用相应的.dll文件)
> OraOpd11w.dll
> tnsnames.ora(如果你需要的话)

此外,Windows目录中还需要以下.dll文件:

> mfc71.dll
> msvcr71.dll

只需复制应用程序工作目录中的所有文件(.exe文件所在的位置).

现在GAC属于哪个?

如果客户端计算机上安装了Oracle客户端,则GAC中还会有Oracle.DataAccess.dll.此外,有可能安装了一个策略,其中包含以下内容:您的程序引用的Oracle.DataAccess.dll的独立内容,应始终使用GAC中的Oracle.DataAccess.dll版本.如果您安装上面链接的ODAC,您会在下面找到该文件

C:WindowsMicrosoft.NETassemblyGAC_32Policy.4.112.Oracle.DataAccessv4.0_4.112.3.0__89b483f429c47342

结果是,如果您尝试加载Oracle.DataAccess.dll(如“提供程序不兼容…”之类的错误消息),则.Net应用程序始终会抛出异常,如果客户端计算机具有其他版本的安装了Oracle Client 11,而不是您在应用程序中引用的Oracle Client 11.

要解决此问题,您可以配置app.conf,以便忽略发布者策略并始终加载您的版本:

<configuration>
...
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342" />
        <publisherPolicy apply="no" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读