C# 用于.net的其他Oracle驱动程序

C# 用于.net的其他Oracle驱动程序,c#,oracle,database-connection,C#,Oracle,Database Connection,我必须用C语言开发一个工具,从Oracle数据库中检索一些数据。由于我们的IT支持在安装Oracle客户端时遇到一些问题,我希望能够在不安装客户端的情况下连接到数据库。 我们的想法是在应用程序中安装(或者注册)一个额外的库 存在哪些Oracle客户端的替代方案,它们的优缺点是什么 这适用于小型应用程序(1个表单、2个或3个查询,结果显示在DataGrid中,可能不超过10-20个数据集),但我也对可伸缩性问题感兴趣,因为我们可能会放弃Oracle客户机而进行更大的未来项目 当然,免费软件解决方案

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

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

这适用于小型应用程序(1个表单、2个或3个查询,结果显示在DataGrid中,可能不超过10-20个数据集),但我也对可伸缩性问题感兴趣,因为我们可能会放弃Oracle客户机而进行更大的未来项目


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

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

有两种不同的类型。您正在尝试使用哪个版本


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

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

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

    “用户id=scott;密码=tiger;数据源=”+ “(描述=(地址=(协议=tcp)”+ “(主机=销售服务器)(端口=1521))(连接数据=”+ “(SERVICE_NAME=sales.us.acme.com))”

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


    部署愉快。

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


    可以找到最新的版本。

    如果您确实需要使用LOB,我写了一篇关于此主题的博文:IMO这是最好的可行解决方案,只需确保您使用连接池即可。摘自MSDN for System.Data.OracleClient:“您还必须安装Oracle 8i客户端或更高版本。”这正是我想要避免的,恐怕…OracleClient现在也被MS弃用了。我们公司的网络很混乱,没有跟踪安装在哪里。我想确保该应用程序将在其安装的所有计算机上运行,而无需确定已安装的Oracle客户端并要求其升级,然后等待他们来做……新链接:谢谢,尽管开发对我来说已经晚了大约4年。。。但我确信我会在我的生命中再次遇到甲骨文;-)哈,好吧,希望这能帮助其他从谷歌看到这篇文章的人