ODP.. NET:提供程序与Oracle客户端版本不兼容

本文关键字:Oracle 客户端 版本 不兼容 程序 NET ODP | 更新日期: 2023-09-27 18:16:56

首先,我想说的是,我看了其他的问题,没有一个对我有帮助。

我得到这个错误的服务器是Windows 2003 SP2 + .net框架4.0 + Oracle i9客户端

我下载了最新的ODP。. NET ODAC1120320Xcopy_32bit.zip将这些dll拷贝出来。

  • oci.dll
  • ociw32.dll
  • Oracle.DataAccess.dll
  • orannzsbb11.dll
  • oraocci11.dll
  • oraociei11.dll
  • OraOps11w.dll

我创建了一个小应用程序,它只是连接到一个oracle。链接

当我运行这个应用程序时,我得到了提供程序与Oracle客户端版本不兼容的错误。

在下载页面上也写着:下面的每个32位ODAC客户端下载都支持与Oracle数据库版本9.2、10.1、10.2、11.1和11.2的连接。

所以我想我应该对我的9i数据库很好。

我不确定我是否应该使用一些旧的ODP。净版。这里的一个答案建议使用支持。net 2.0的11.1.0.6.20版本,但我的应用程序是针对。net 4.0编写的。

我该怎么办?

ODP.. NET:提供程序与Oracle客户端版本不兼容

我不知道有什么支持的方法可以在没有安装的情况下运行oracle客户端(xcopy版本包含一个批处理文件用于安装,所以"xcopy"有点用词不当。

也就是说,如果你要做一些不受支持的事情,你最好选择一些最终会被支持的东西——100%托管提供程序(意味着没有额外的非托管dll需要复制)目前处于测试阶段:http://www.oracle.com/technetwork/database/windows/downloads/odpmbeta - 1696432. - html

即使只是为了学习经验,我也注定要把事情看到底,所以如果你想看到你目前的成果,我可以理解。oracle文档确实指出,应用程序目录实际上在非托管dll搜索顺序中位于首位。我的猜测是需要额外的dll(您使用的是比链接文章更新的版本)。我会使用Process Monitor等工具查看它从应用程序目录外部加载了哪些特定的dll,并查看是否可以从新的ODAC中找到等效的文件进行复制。