【问题标题】:Oracle connection with port, service name, and database from C# (ORA-12514使用 C# 的端口、服务名称和数据库的 Oracle 连接 (ORA-12514
【发布时间】:2018-04-27 21:59:28
【问题描述】:

我是 Oracle 的新手。尝试将 C# windows 应用程序连接到 Oracle 数据库,但似乎无法建立正确的连接。不断收到异常:“ORA-12514: TNS:listener 目前不知道连接描述符中请求的服务”。我必须在连接字符串中指定端口、服务名称和数据库名称,因为服务 ID 可以访问多个数据库。我知道字符串中的值是有效的(有效的服务器、有效的 serviceid、有效的用户名、密码等),因为我有一个第三方工具,它能够使用向导中的相同参数进行连接。我尝试了很多不同的方法来格式化连接字符串,但我总是得到相同的 12514 错误。在代码示例中,您将看到三种格式(cxn、cxn2 和 cxn3),我尝试了每种格式,但都得到了相同的错误。

        string cxn = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyServerName)(PORT=MyPortNumber))" +
            "(CONNECT_DATA=(SERVICE_NAME=MyServiceId)));User Id=MyUserName; Password=MyPassword;";

        string cxn2 = "DATA SOURCE=MyServerName:MyPortNumber/MyUserName;" +
            "PERSIST SECURITY INFO=True;USER ID=MyUserName; password=MyPassword; Pooling = False;";

        string cxn3 = "DATA SOURCE=MyServerName:MyPortNumber/MyServiceId;" +
            "PERSIST SECURITY INFO=True;USER ID=MyUserName; password=MyPassword; Pooling = False;";

        using (OracleConnection conn = new OracleConnection(cxn3))
        {
            string sqlSelect = "SELECT * FROM PERSONS";
            using (OracleDataAdapter da = new OracleDataAdapter(sqlSelect, conn))
            {
                var table = new DataTable();
                da.Fill(table);

                if (table.Rows.Count > 1)
                    Console.WriteLine("Successfully read oracle.");
            }
        }

再次,我在第三方工具的向导中使用了 MyServiceId,我连接得很好并选择了我的数据库。我正在使用 Oracle.ManagedDataAccess.Client。我在网上查阅了很多文章,包括Oracle's guidance in section "Getting Started with ODP.NET, Managed Driver"。如何让驱动程序识别有效的服务 ID,然后接受数据库名称?任何指导表示赞赏。谢谢。

【问题讨论】:

    标签: c# database oracle ora-12514


    【解决方案1】:

    我希望我有一个更明确的解释,但事实证明,我原来的问题中的代码现在可以使用变量“cxn”中定义的连接字符串。我之前运行了很多次都没有成功,所以我唯一的猜测是 DBA 在初始配置后更改了某些内容或重新启动了服务器。

    【讨论】:

      猜你喜欢
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 2018-11-17
      • 2012-08-23
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多