0

我正在使用 ODP.net 连接到 Oracle 架构,并不断触发以下错误跟踪:

   ORA-6413: Connection not open.
   at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(
      Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure)
   at Oracle.DataAccess.Client.OracleException.HandleError(
      Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)
   at Oracle.DataAccess.Client.OracleConnection.Open()

我完全无法解释为什么我正在使用的应用程序无法建立连接。我对特定于 Oracle 的错误代码的理解有限,因此非常感谢任何可以分享的见解。

我已经通过登录 SQL+ plus 测试了登录凭据和 TNS 设置,这些都是正确的。

我使用的连接字符串格式是:

    user id=[userid];
    password=[password];
    data source=//[machine ID]:[port]/[service name]

我使用的是 10.2.0.100 版本的 OracleDataAccess.dll。

我可以为任何敢于尝试解决此问题的人提供更多信息。任何输入都非常感谢 - 我已经对此感到困惑太久了!

4

1 回答 1

0

根据您的错误消息:“ORA-6413:连接未打开。” 您的代码很可能只是忽略了打开数据库连接。

您的代码应如下所示:

using(OracleConnection _dbConnection = /*...setup connection object here...*/)
{
    _dbConnection.Open();
    var cmd = _dbConnection.CreateCommand();
    cmd.CommandText="some sql here";
    cmd.ExecuteReader();

    //... do "stuff" and then close your reader and connection...
}
于 2013-06-19T21:43:26.680 回答