R
Real-Mulik
Вознкла следующая проблема. В БД Oracle содержется хранимая процедура с 4-мя input параметрами. Необходимо ее выпонить передав ей параметры. Если все делать "руками" т.е. формировать запрос следующим образом:
то все работате. Однако хотелось бы все сделать по-взрослому, т.е. с использованием параметров. Поэтому была предпринята попытка сделать следующее:
что повлекло след. ошибку:
приводит к след ошибке:
Код:
OracleConnection con = new OracleConnection("Data Source=colg;Persist Security Info=True;User ID=mail;Unicode=True");
con.Open();
OracleCommand cmd = new OracleCommand("MAIL.UPDATEORDELETEPARAMETRS('timeout',1,'300',null)", con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
Код:
OracleConnection con = new OracleConnection("Data Source=colg;Persist Security Info=True;User ID=mail;Unicode=True");
OracleCommand cmd = new OracleCommand("MAIL.UPDATEORDELETEPARAMETRS", con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
con.Open();
cmd.Parameters.Add("NAMEPARAMETR",OracleType.VarChar);
cmd.Parameters.Add("ID_MAILBOX", OracleType.Number);
cmd.Parameters.Add("VALUEP", OracleType.VarChar);
cmd.Parameters.Add("COMMENTP", OracleType.VarChar);
cmd.Parameters[0].Direction = System.Data.ParameterDirection.Input;
cmd.Parameters[0].Value = "timeout";
cmd.Parameters[1].Direction = System.Data.ParameterDirection.Input;
cmd.Parameters[1].Value = "1";
cmd.Parameters[2].Direction = System.Data.ParameterDirection.Input;
cmd.Parameters[2].Value = "300";
cmd.Parameters[3].Direction = System.Data.ParameterDirection.Input;
cmd.Parameters[3].Value = null;
cmd.ExecuteNonQuery();
Интерпритация свойства CommandText типа:ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'UPDATEORDELETEPARAMETR
S'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Код:
OracleCommand cmd = new OracleCommand("MAIL.UPDATEORDELETEPARAMETRS(NAMEPARAMETR,ID_MAILBOX,VALUEP, COMMENTP)", con);
Если параметры заменить на знаки ? выдается сообщение:ORA-06550: line 1, column 7:
PLS-00801: internal error [22503]
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Как еще можно вызвать хранимую процедуру?Internal .Net Framework Data Provider error 30.