Oracle 客户端和 ODAC 之间的区别
Difference between Oracle Client and ODAC
安装完整的 Oracle Client 和安装 Oracle Odac 有什么区别?我需要在我的开发工作站上进行哪些 .NET 开发,以及在将与另一台服务器上的 Oracle 数据库连接的 Web 应用程序服务器上需要哪些?
ODAC includes Oracle Data Provider for .NET, Oracle Developer Tools
for Visual Studio (ODT), Oracle Providers for ASP.NET, .NET stored
procedure support, as well as additional Oracle data access software
for Windows.
-甲骨文的site.
完整的 Oracle 客户端包括很多额外的软件,例如 SQLPlus、SQL Developer 等
不管怎样,这几乎是无关紧要的。在 .NET 中获取数据库驱动程序的标准方法是使用 NuGet,Oracle 有一个没有外部依赖项的 official managed driver,这是最简单的入门方法。您通过 NuGet 将该程序包添加到您的应用程序,当您发布应用程序时,必要的 DLL 将包含在您的应用程序中,而无需专门配置服务器。
这很混乱,重新写下来对我有帮助。
我的总结:
- Oracle Instant Client 仅公开直接的 OCI(Oracle 调用接口)API,因此仅与 Oracle-aware 应用程序相关(参见 http://www.oracle.com/technetwork/topics/winx64soft-089540.html)
- ODAC 包括 Instant Client,再加上一堆 Microsoft-facing API(.net 提供商、ASP.Net 会员提供商、OLEDB驱动程序、ODBC 驱动程序、MTS 事务协调器),涵盖了大多数 Windows 应用场景中您需要的内容。例如 http://www.oracle.com/technetwork/topics/dotnet/downloads/install112021-200037.html。 ODAC 有两种版本:'xcopy' 版本和 OUI(Oracle Universal Installer)版本(只有 OUI 版本包括 SQL*Plus [#1 ])
- ODT(适用于 .Net 的 Oracle 开发人员工具)提供 Visual Studio 集成,并且通常与 ODAC 捆绑在一起(您会得到一个名为 ODTwithODACxxxx.zip 的下载),例如 http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
- Oracle.DataAccess nuget 包是 ODAC .net 驱动程序的一个版本,因此 需要 现有的 Instant Client 安装(即使用 OCI)。令人困惑的是,它一度被标记为托管驱动程序(因为它只是具有一些 重要 non-managed 本地依赖项)。
- Oracle.ManagedDataAccess nuget 包是一个 fully-managed .net 驱动程序,在 'direct' 模式下工作,不需要本地即时客户端
所以对于大多数 .net 人来说,'Oracle Client' 意味着 OUI-installed ODAC Instant Client + .Net 驱动程序,也可能是 ODT。
对于 nugets,值得指出的是即使现在(2017 年 1 月)Oracle.ManagedDataAccess 驱动程序仍然不能做很多事情[#2],所以 Oracle.DataAccess + InstantClient 是不是一个完全过时的选择。如果您只是使用 SELECT/INSERT 或香草 ADO.Net 阅读和写作,您会没事的。我听说 EF 支持也比以前好得多。 DevArt 的 dotConnect 驱动程序是这里的另一个(非常好的)选项。
还有一个用于 Oracle 即时客户端的 nuget 包,但我不知道那是干什么用的。大概是 Win32/.Net native-OCI 应用程序需要 zero-install Instant Client via nuget。他们俩。
[#1] SQL*Plus 可能在运行时很少使用,尽管如果您想将它添加到现有的ODAC 安装。
[#2] 例如:使用 table-valued UDTs
调用 oracle 存储过程
安装完整的 Oracle Client 和安装 Oracle Odac 有什么区别?我需要在我的开发工作站上进行哪些 .NET 开发,以及在将与另一台服务器上的 Oracle 数据库连接的 Web 应用程序服务器上需要哪些?
ODAC includes Oracle Data Provider for .NET, Oracle Developer Tools for Visual Studio (ODT), Oracle Providers for ASP.NET, .NET stored procedure support, as well as additional Oracle data access software for Windows.
-甲骨文的site.
完整的 Oracle 客户端包括很多额外的软件,例如 SQLPlus、SQL Developer 等
不管怎样,这几乎是无关紧要的。在 .NET 中获取数据库驱动程序的标准方法是使用 NuGet,Oracle 有一个没有外部依赖项的 official managed driver,这是最简单的入门方法。您通过 NuGet 将该程序包添加到您的应用程序,当您发布应用程序时,必要的 DLL 将包含在您的应用程序中,而无需专门配置服务器。
这很混乱,重新写下来对我有帮助。
我的总结:
- Oracle Instant Client 仅公开直接的 OCI(Oracle 调用接口)API,因此仅与 Oracle-aware 应用程序相关(参见 http://www.oracle.com/technetwork/topics/winx64soft-089540.html)
- ODAC 包括 Instant Client,再加上一堆 Microsoft-facing API(.net 提供商、ASP.Net 会员提供商、OLEDB驱动程序、ODBC 驱动程序、MTS 事务协调器),涵盖了大多数 Windows 应用场景中您需要的内容。例如 http://www.oracle.com/technetwork/topics/dotnet/downloads/install112021-200037.html。 ODAC 有两种版本:'xcopy' 版本和 OUI(Oracle Universal Installer)版本(只有 OUI 版本包括 SQL*Plus [#1 ])
- ODT(适用于 .Net 的 Oracle 开发人员工具)提供 Visual Studio 集成,并且通常与 ODAC 捆绑在一起(您会得到一个名为 ODTwithODACxxxx.zip 的下载),例如 http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
- Oracle.DataAccess nuget 包是 ODAC .net 驱动程序的一个版本,因此 需要 现有的 Instant Client 安装(即使用 OCI)。令人困惑的是,它一度被标记为托管驱动程序(因为它只是具有一些 重要 non-managed 本地依赖项)。
- Oracle.ManagedDataAccess nuget 包是一个 fully-managed .net 驱动程序,在 'direct' 模式下工作,不需要本地即时客户端
所以对于大多数 .net 人来说,'Oracle Client' 意味着 OUI-installed ODAC Instant Client + .Net 驱动程序,也可能是 ODT。
对于 nugets,值得指出的是即使现在(2017 年 1 月)Oracle.ManagedDataAccess 驱动程序仍然不能做很多事情[#2],所以 Oracle.DataAccess + InstantClient 是不是一个完全过时的选择。如果您只是使用 SELECT/INSERT 或香草 ADO.Net 阅读和写作,您会没事的。我听说 EF 支持也比以前好得多。 DevArt 的 dotConnect 驱动程序是这里的另一个(非常好的)选项。
还有一个用于 Oracle 即时客户端的 nuget 包,但我不知道那是干什么用的。大概是 Win32/.Net native-OCI 应用程序需要 zero-install Instant Client via nuget。他们俩。
[#1] SQL*Plus 可能在运行时很少使用,尽管如果您想将它添加到现有的ODAC 安装。
[#2] 例如:使用 table-valued UDTs
调用 oracle 存储过程