正在破译odp.net触发的堆栈跟踪错误
本文关键字:堆栈 跟踪 错误 net odp | 更新日期: 2023-09-27 18:19:10
我正在使用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。我可以为任何敢于尝试解决这个问题的人提供更多信息。任何输入都是非常感激的-我一直在困惑这个太久了!
基于您的错误消息:"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...
}