将C#连接到Oracle数据库所需的最小客户端占用量是多少?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我通过在笔记本电脑上下载和安装客户端管理工具和Visual Studio 2008,成功连接到C#(Visual Studio 2008)中的Oracle数据库(10g)。

Oracle客户端工具的安装足迹超过了200Mb,并且相当长的时间。

有谁知道最小可行路程是什么?我希望它是一个单一的DLL和一个注册命令,但我有这种感觉,我需要安装一个Oracle主目录,并设置各种环境变量。

我在我的代码中使用Oracle.DataAccess。

提问于
用户回答回答于

你需要Oracle客户端才能连接到Oracle数据库。最简单的方法是安装Oracle数据访问组件。

为了尽量减少占地面积,我建议如下:

  • 使用框架附带的Microsoft提供程序Oracle(System.Data.OracleClient)。
  • 下载Oracle即时客户端软件包 - Basic Lite:这是一个(几乎)最低限度的zip文件。我推荐版本10.2.0.4,它比版本11.1.0.6.0小得多。
  • 将以下文件解压缩到特定文件夹中:
    • V10:
      • OCI.DLL
      • orannzsbb10.dll
      • oraociicus10.dll

    • v11:
      • OCI.DLL
      • orannzsbb11.dll
      • oraociei11.dll

  • 在x86平台上,将用于Visual Studio 2003(msvcr71.dll)的CRT DLL添加到此文件夹
  • 将此文件夹添加到PATH环境变量。
  • 在你的应用程序中使用Easy Connect命名方法来摆脱臭名昭着的TNSNAMES.ORA配置文件。它看起来像这样:sales-server:1521/sales.us.acme.com

这相当于19Mb(v10)。

如果你不关心在多个应用程序之间共享这个文件夹,另一种方法是将上述DLL与应用程序二进制文件一起发送,然后跳过PATH设置步骤。

如果你绝对需要使用Oracle提供程序(Oracle.DataAccess),则需要:

  • ODP .NET 11.1.0.6.20(据称可用于即时客户端的第一个版本)。
  • 即时客户端11.1.0.6.0,显然。

用户回答回答于

在Windows XP上使用ODAC 11.2.0.2.1。步骤如下:

  1. 从oracle.com(53 MB)下载带有Xcopy Deployment的“ODAC 11.2 Release 3(11.2.0.2.1)”软件包,然后解压ZIP。
  2. 收集以下DLL:oci.dll(1 MB),oraociei11.dll(130 MB!),OraOps11w.dll(0.4 MB),Oracle.DataAccess.dll(1 MB)。剩下的东西可以被删除,并且不需要安装任何东西。
  3. 添加到Oracle.DataAccess.dll参考,添加using Oracle.DataAccess.Client;到您的代码,现在你可以使用类型,如OracleConnectionOracleCommandOracleDataReader访问Oracle数据库。不需要使用tnsnames.ora配置文件,只有连接字符串必须正确设置。
  4. 以上4个DLL必须与你的可执行文件一起部署。

扫码关注云+社区