我必须在C#中开发一个从Oracle DB中检索一些数据的工具.由于我们的IT支持在安装Oracle客户端时遇到了一些问题,我希望能够在没有安装客户端的情况下连接到数据库.我们的想法是与应用程序一起安装(并可能注册)一个额外的库.
Oracle客户端存在哪些替代方案,它们的优缺点是什么?
这适用于一个小型应用程序(1个表单,2个或3个查询,结果显示在DataGrid中,可能不超过10-20个数据集),但我也对可伸缩性问题感兴趣,因为我们也可能会远离Oracle客户拥有更大的未来项目.
当然,免费软件解决方案会很好,但我们不仅限于此.
您的任务无需任何第三方软件即可实现:
在开发框中安装Oracle Data Access Components 11g.ODAC 11g向后兼容9i和10g
在.NET项目中添加对ODAC库的引用(Oracle.DataAccess.dll).
允许您的应用程序在不使用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)))"
由于您在连接字符串中包含连接描述符,因此目标计算机中不需要瘦客户端.
快乐部署.
Oracle ODP.Net驱动程序有几种不同的风格.您正在尝试使用哪个版本?
听起来您希望Oracle 11g ODAC 11.1.0.6.21具有Xcopy部署,它允许您通过复制几个DLL并注册它们来部署Oracle Instant Client和ODP.Net驱动程序.这不需要完整的Oracle客户端安装.