如何在没有ORACLE客户端或tnsname的情况下连接到ORACLE数据库

本文关键字:ORACLE 情况下 连接 数据库 tnsname 客户端 | 更新日期: 2023-09-27 18:20:39

有没有任何方法可以在不安装Oracle客户端或使用tnsname的情况下连接到Oracle数据库?应用程序需要部署在客户端机器上,因此希望它是独立的。

如何在没有ORACLE客户端或tnsname的情况下连接到ORACLE数据库

为了澄清我的评论,这在Oracle的Managed ODP.net中是可能的,它不需要客户端机器安装任何Oracle客户端/驱动程序。它非常适合Windows或控制台应用程序,在这些应用程序中,您无法控制安装在目标计算机上的软件。

要下载托管客户端,可以使用Library Package Manager从nuget获取(https://www.nuget.org/packages/odp.net.managed/):

PM> Install-Package odp.net.managed

关于TNSnames(因为这也是一个客户端依赖项),如果您使用Oracle的EZConnect,您可以完全绕过TNSnames。要做到这一点,只需将数据源格式化为server-name:port/sid即可。事实上,自从TNSnames上市后,我就完全停止使用了。

以下是如何使用Managed ODP.net实现这一点的示例:

OracleConnectionStringBuilder sb = new OracleConnectionStringBuilder();
sb.DataSource = "MyOracle.MyCompany.com:1521/MySid"; // EZ Connect -- no TNS Names!
sb.UserID = "luke";
sb.Password = "Jedi4Eva";
OracleConnection conn = new OracleConnection(sb.ToString());
conn.Open();
OracleCommand cmd = new OracleCommand("select * from dual", conn);
object o = cmd.ExecuteScalar();
conn.Close();