0

我有一个 Windows 窗体应用程序,我在其中尝试使用 OracleManaged 驱动程序连接到 Oracle 11g DB,该驱动程序以异常“ORA-12154:TNS:无法解析指定的连接标识符”结束。但是,当我尝试通过 ODP.NET 64 位 dll 连接时,它正在连接(为此我确保在 x64 中构建应用程序)。下面的示例代码。如果我切换到第二个语句,我会在打开连接时收到错误消息。

Oracle.DataAccess.Client.OracleConnection con = new Oracle.DataAccess.Client.OracleConnection();
//Oracle.ManagedDataAccess.Client.OracleConnection con = new Oracle.ManagedDataAccess.Client.OracleConnection();
con.ConnectionString = "Data Source=v3;User Id=xxx;Password=xxx;";
con.Open();
MessageBox.Show("Done");
con.Close();

有没有我缺少的设置?即使我尝试使用 manaed ODP(64 位)附带的 configure.bat

4

2 回答 2

1

原因很简单,您的托管驱动程序不知道在哪里可以找到 TNSNAMES.ORA。Oracle 表示这取决于环境变量。我们在这里所做的是将 TNS_ADMIN 环境变量设置为包含 TNSNAMES 的文件夹,并且一切正常。这是最好的解决方案,因为它允许您的站点上没有多个 TNSNAMES.ora 实例...

于 2015-03-27T18:23:01.680 回答
-1

我通过将 tnsnames.ora 文件复制到 bin 文件夹来完成这项工作。托管驱动程序似乎找不到正确的 tnsname.ora 文件。

于 2014-11-18T16:58:32.300 回答