【问题标题】:Can't connect to database (OCIenVCreate has failed)无法连接到数据库(OCIenVCreate 失败)
【发布时间】:2011-01-17 15:32:26
【问题描述】:

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

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

当我尝试连接到数据库时,我收到以下错误:“OCIenvCreate has failed return code -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 企业版运行应用程序(我希望这会有所帮助)。

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-29
      • 2021-07-14
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 2017-06-10
      • 2022-09-28
      相关资源
      最近更新 更多