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 に答える