Я использую базу данных Oracle (10g), которая содержит хранимую процедуру под названием Foo.
Foo принимает 2 datetime в качестве параметров IN и 1 курсор в качестве параметра OUT.Я пытался установить соединение и запрос к базе данных с помощью OleDbCommand, но поскольку Foo нужен курсор, у меня нет другого выбора, кроме как использовать OracleCommand (верно?).
Когда я пытаюсь подключитьсяв базу данных я получаю следующую ошибку: «OCIenvCreate не удалось вернуть код возврата -1».Я дал правильные разрешения пользователю ASPNET для файла 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 Server 2003 Entreprise Edition (надеюсь, это поможет).
Спасибо.