我使用的是一个Oracle数据库(10g),其中包含一个名为Foo的存储过程。
Foo将2个datetime作为IN参数,将1个游标作为OUT参数。我一直在尝试使用OleDbCommand连接和查询数据库,但是由于Foo需要一个游标,我别无选择,只能使用OracleCommand(对吗?)。
当我尝试连接到数据库时,我得到了以下错误:"OCIenvCreate已失败,返回代码-1“。我已经给了ASP.NET用户对oci.dll文件的正确权限,这样它就可以读取和执行该文件。不幸的是,我仍然得到同样的错误,我迷路了。
以下是导致错误的原因
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 Server2003企业版上运行该应用程序(我希望这能有所帮助)。
谢谢。
发布于 2010-01-11 23:34:35
我不太确定确切的问题是什么,但我设法使用连接字符串中的另一个提供程序连接到了我的数据库。
https://stackoverflow.com/questions/2028721
复制相似问题