7

我必须在 C# 中开发一个从 Oracle DB 检索一些数据的工具。由于我们的 IT 支持在安装 Oracle 客户端时遇到了一些问题,我希望能够在不安装客户端的情况下连接到数据库。这个想法是与应用程序一起安装(并可能注册)一个附加库。

存在哪些 Oracle 客户端的替代方案,它们的优缺点是什么?

这是针对小型应用程序(1 个表单,2 或 3 个查询,结果显示在 DataGrid 中,可能不超过 10-20 个数据集),但我也对可伸缩性问题感兴趣,因为我们也可能远离具有更大未来项目的 Oracle 客户。

当然,免费软件解决方案会很好,但我们不仅限于此。

4

4 回答 4

9

无需任何第三方软件即可完成您的任务:

  1. 在您的开发框中安装Oracle Data Access Components 11g。ODAC 11g 向后兼容 9i 和 10g
  2. 在 .NET 项目 (Oracle.DataAccess.dll) 中添加对 ODAC 库的引用。
  3. 允许您的应用程序在不使用 TNSNAMES.ORA 的情况下进行连接。为此,您必须在连接字符串中包含连接描述符:

    "user id=scott;password=tiger;data source=" + "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)" + "(HOST=sales-server)(PORT=1521))(CONNECT_DATA="+ "( SERVICE_NAME=sales.us.acme.com)))"

由于您在连接字符串中包含连接描述符,因此目标计算机中不需要瘦客户端。

愉快的部署。

于 2009-02-03T18:57:21.580 回答
8

Oracle ODP.Net 驱动程序有几种不同的风格。您要使用哪个版本?

听起来您想要带有 Xcopy 部署的 Oracle 11g ODAC 11.1.0.6.21,它允许您通过复制几个 DLL 并注册它们来部署 Oracle Instant Client 和 ODP.Net 驱动程序。这不需要完整的 Oracle 客户端安装。

于 2009-01-30T15:42:09.667 回答
3

Oracle 目前有一个完全托管的 ODP.NET 版本,允许开发人员连接到 Oracle 数据库,同时只引用一个 DLL。这里有更多信息。

当前版本可以在这里找到。

于 2013-02-26T15:50:52.587 回答
0

企业库客户端 System.Data.OracleClient 是 Oracle 的 ODP.NET 提供程序的可行替代方案。不过,您应该知道一些警告,使用 Microsoft 客户端将使处理任何类型的大型对象变得极其困难,无论它们是 XML 字符串、CLOB、LOB 还是 BLOB。此外,不支持 Oracle XmlType 列,必须将其转换为 CLOB 才能返回到 OracleClient。

于 2009-01-30T15:33:16.250 回答