gpt4 book ai didi

oracle - Oracle 客户端和 ODAC 的区别

转载 作者:行者123 更新时间:2023-12-01 08:27:57 24 4
gpt4 key购买 nike

安装完整的 Oracle 客户端和安装 Oracle Odac 有什么区别?我需要在我的开发工作站上进行 .NET 开发,在将与另一台服务器上的 Oracle 数据库连接的 Web 应用程序服务器上需要哪些?

最佳答案

这很令人困惑,再次写下来对我有帮助。

我的总结:

  • Oracle Instant Client 仅公开直接 OCI(Oracle 调用接口(interface))API,因此仅与 Oracle 感知应用程序相关(例如,参见 http://www.oracle.com/technetwork/topics/winx64soft-089540.html)
  • ODAC 包括 Instant Client,此外还有一堆面向 Microsoft 的 API(.net 提供程序、ASP.Net 成员资格提供程序、OLEDB 驱动程序、ODBC 驱动程序、MTS 事务协调器),它们涵盖了您在大多数 Windows 中需要的内容应用场景。例如http://www.oracle.com/technetwork/topics/dotnet/downloads/install112021-200037.html . ODAC 有两种版本:'xcopy' 版本和 OUI(Oracle 通用安装程序)版本(和 只有 OUI 版本包括 SQL*Plus [#1])
  • ODT(Oracle Developer Tools for .Net)提供 Visual Studio 集成,通常与 ODAC 捆绑在一起(您可以下载名为 ODTwithODACxxxx.zip),例如 http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
  • Oracle.DataAccess nuget 包是 ODAC .net 驱动程序的一个版本,因此需要安装现有的 Instant Client(即使用 OCI)。令人困惑的是,有一次它被标记为托管驱动程序(因为它只是具有一些重要的非托管本地依赖项)。
  • Oracle.ManagedDataAccess nuget 包是一个完全托管的 .net 驱动程序,在“直接”模式下工作,不需要本地即时客户端

  • 因此,对于大多数 .net 用户来说,“Oracle 客户端”意味着安装了 OUI 的 ODAC Instant Client + .Net 驱动程序,也可能是 ODT。

    对于 nugets,值得指出的是,即使现在(2017 年 1 月)Oracle.ManagedDataAccess 驱动程序仍然不能做很多事情[#2],所以 Oracle.DataAccess + InstantClient 并不是一个完全过时的选项。如果你只是用 SELECT/INSERT 或 vanilla ADO.Net 读写,你会没事的。有人告诉我,EF 支持也比以前好得多。 DevArt 的 dotConnect 驱动程序是另一个(非常好的)选择。

    Oracle 即时客户端还有一个 nuget 包,但我不知道它的用途。大概是 Win32/.Net native OCI 应用程序,它们希望通过 nuget 实现零安装即时客户端。两个都。

    [#1] SQL*Plus 在运行时可能很少使用,尽管有一个 separate installer如果要将其添加到现有的 ODAC 安装,请在 Instant Client 下载页面上列出。

    [#2] 例如:使用表值 UDT 调用 oracle 存储过程

    关于oracle - Oracle 客户端和 ODAC 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29268299/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com