无法连接到数据库(OCIenVCreate失败)

问题描述:

我正在使用包含名为Foo的存储过程的Oracle数据库(10g)。无法连接到数据库(OCIenVCreate失败)

Foo将2个日期时间作为IN参数和1个光标作为OUT参数。我一直在试图用OleDbCommand来建立连接和查询数据库,但由于Foo需要一个游标,我别无选择,只能使用OracleCommand(对吧?)。

当我尝试连接到数据库时,出现以下错误:“OCIenvCreate失败返回代码-1”。我已经为oci.dll文件授予了ASPNET用户的正确权限,以便它可以读取和执行它。不幸的是,我仍然得到同样的错误,我迷路了。

下面是导致错误

 OracleConnectionStringBuilder conBuilder = new OracleConnectionStringBuilder(); 
     conBuilder.DataSource = dataSrc; 
     conBuilder.UserID = user; 
     conBuilder.Password = password; 

     OracleConnection con = new OracleConnection(conBuilder.ConnectionString); 

     OracleCommand cmd = new OracleCommand("foo", con); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.Add("this_is_a_cursor", OracleType.Cursor).Direction = ParameterDirection.Output; 

     con.Open(); // Cause the error at runtime 
     OracleDataReader reader = cmd.ExecuteReader(); 
     GridView1.DataSource = reader; 
     GridView1.DataBind(); 
     con.Close(); 

我注意到一些其他人有同样的问题。

我从Windows Server 2003 Entreprise Edition运行应用程序(我希望这可以帮助)。

谢谢。

我不太确定确切的问题是什么,但我设法连接到我的数据库与连接字符串中的另一个提供程序。