我正在使用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。
我可以为敢于尝试解决此问题的人提供更多信息。任何输入都非常感激 - 我一直在为此困惑太久了!
答案 0 :(得分: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...
}