.net的替代Oracle驱动程序

时间:2009-01-30 15:28:27

标签: c# oracle database-connection

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

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

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

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

4 个答案:

答案 0 :(得分:9)

您的任务无需任何第三方软件即可实现:

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

    “user id = scott; password = tiger; data source =”+ “(DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)”+ “(HOST =销售服务器)(PORT = 1521))(CONNECT_DATA =” + “(SERVICE_NAME = sales.us.acme.com)))”

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

    快乐部署。

答案 1 :(得分:8)

Oracle ODP.Net driver有几种不同的风格。你想用哪个版本?

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

答案 2 :(得分:3)

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

目前的版本可以找到here

答案 3 :(得分:0)

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