在没有tnsname.ora的情况下连接到Oracle

我需要从我的.Net应用程序连接到oracle。

我正在考虑使用ODP.NET

有没有办法连接到Oracle而不依赖于tnsnames.ora文件? 我问的原因是因为我将有数百个不同的连接,我不想依赖于该文件。

是的,如果您使用包含tnsname.ora数据的连接字符串。


假设您的tnsname条目如下所示:

  YourTnsName = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = YourHost)(PORT = 1521)) ) (CONNECT_DATA = (SID = YourSid) ) ) 

而不是在连接字符串中使用YourTnsName ,您可以这样写:

 var constr = new OracleConnectionStringBuilder() { DataSource = @"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = YourHost)(PORT = 1521)))(CONNECT_DATA =(SID = YourSid)))", UserID = "userid", Password = "password", }.ConnectionString; using (var con = new OracleConnection(constr)) { ... } 

因此,不需要在tnsname.ora输入任何内容。