我必须在C#中开发一个从Oracle DB中检索一些数据的工具。由于我们的IT支持在安装Oracle客户端时遇到一些问题,我希望能够在没有安装客户端的情况下连接到数据库。 我们的想法是与应用程序一起安装(并可能注册)一个额外的库。
Oracle客户端存在哪些替代方案,它们的优缺点是什么?
这适用于小型应用程序(1个表单,2个或3个查询,结果显示在DataGrid中,可能不超过10-20个数据集),但我也对可伸缩性问题感兴趣,因为我们也可能会移动远离甲骨文客户,拥有更大的未来项目。
当然,免费软件解决方案会很好,但我们不仅限于此。
答案 0 :(得分:9)
您的任务无需任何第三方软件即可实现:
允许您的应用程序在不使用TNSNAMES.ORA的情况下进行连接。为此,您必须在连接字符串中包含连接描述符:
“user id = scott; password = tiger; data source =”+ “(DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)”+ “(HOST =销售服务器)(PORT = 1521))(CONNECT_DATA =” + “(SERVICE_NAME = sales.us.acme.com)))”
由于您在连接字符串中包含连接描述符,因此目标计算机中不需要瘦客户端。
快乐部署。
答案 1 :(得分:8)
Oracle ODP.Net driver有几种不同的风格。你想用哪个版本?
听起来您希望Oracle 11g ODAC 11.1.0.6.21具有Xcopy部署,它允许您通过复制几个DLL并注册它们来部署Oracle Instant Client和ODP.Net驱动程序。这不需要完整的Oracle客户端安装。
答案 2 :(得分:3)
答案 3 :(得分:0)
企业库客户端System.Data.OracleClient是Oracle的ODP.NET提供程序的可行替代方案。您应该知道有一些警告,使用Microsoft客户端将使得处理任何类型的大型对象非常困难,无论它们是XML字符串,CLOB,LOB还是BLOB。此外,不支持Oracle XmlType列,必须将其转换为CLOB才能返回到OracleClient。