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

时间:2010-01-08 15:50:52

标签: c# asp.net oracle ado.net

我正在使用Oracle数据库(10g),其中包含一个名为Foo的存储过程。

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运行该应用程序(我希望这可以提供帮助)。

谢谢。

1 个答案:

答案 0 :(得分:0)

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