首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle11g客户端是否需要ODP.NET?

Oracle11g客户端是否需要ODP.NET?
EN

Stack Overflow用户
提问于 2009-07-21 16:17:15
回答 6查看 21.6K关注 0票数 8

我可能问错了问题,如果是的话,我愿意改变它。

我有一个使用Microsoft.NET Oracle的项目(我们的计划是改为ODP,但我们还没有这么做)。

我试图让这个项目构建在一个windows 2008 (x64)构建服务器上。它构建得很好,但是当我们的单元测试碰到Oracle数据库上的内容时就失败了。

我最初安装了32位Oracle9i客户端,这是我们目前在winxp开发框和上一个2003构建服务器上使用的。但是现在它得到了这样的消息:尝试加载Oracle抛出的BadImageFormatException。在安装32位Oracle客户端组件时,在64位模式下运行时会出现此问题。

我们试着编译到x86平台,但这并没有改变错误消息。

我现在已经安装了11g 64位客户端,但是我收到了一条消息: System.Data.OracleClient需要Oracle软件版本8.1.7或更高版本。

那么,我应该使用什么Oracle安装呢?

编辑:

我能让这件事起作用。结果是测试导致了问题,迫使NUnit以32位模式运行:链接 I能够让测试使用旧的32位驱动程序工作。这将是一个糟糕的答案,所以我不会使用它,但会很高兴地奖励正确的答案,任何人在转换到甲骨文64位驱动程序的一些好的信息。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-08-27 13:54:05

谈到甲骨文,我喜欢使用Oracle即时客户端

  • 您不需要在目标机器上安装任何东西(包括文本框!)。
  • 您可以确保您的应用程序将与您选择的特定客户端一起运行。
  • 您甚至可以轻松地让多个应用程序在同一台计算机上使用不同的客户端版本。
  • 作为一个缺点,它为您的应用程序增加了很大的权重(~19 it的最小值)。

有关更多信息,请查看将C#连接到Oracle数据库所需的最小客户端占用空间是多少?。要了解如何设置将在x86和x64机器上工作的Visual项目,请查看我的博客文章Visual中的Oracle即时客户端

票数 9
EN

Stack Overflow用户

发布于 2012-12-21 09:22:57

我正在添加一个新的答案,因为从今年秋天(2012年)开始,ODP管理的代码Beta是可用的。有关详细信息,请参阅此链接。它对我们来说是高度稳定的,我们在生产中使用它,主要是因为以下原因:

  • 没有安装(除了需要简单注册的实体框架)
  • 它比非托管版本要小,占用空间约为6MB。
  • 它不是“有点敏感的”(任何CPU最终都将与ODP :)一起工作。)
  • 更直观地映射C#类型<-> Oracle类型(它解决了EF和从数据库生成模型的一些问题)
  • 支持EZCONNECT (非托管ODP的所有版本都不支持),即不再有tnsnames.ora麻烦。

但是要转换到64位,下载托管ODP驱动程序并将Oracle.DataAccess引用更改为Oracle.ManagedDataAccess并重新编译:)

票数 3
EN

Stack Overflow用户

发布于 2009-07-21 21:46:35

我认为"System.Data.OracleClient需要OracleClientSoftwareVersion8.1.7或更高版本“的消息类似于"Oracle未安装、安装但未找到或已安装但需要8.1.7或更高版本”。

如果值就在键下面,请检查regedit:

代码语言:javascript
复制
 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraOdac11g_home1

安装时,OraOdac11g_home1依赖于Oracle名称。

此外,请尝试通过Visual进行连接,以查看是否可能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1160218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档