вызов хранимых функции из oracle
От: Аноним  
Дата: 22.07.08 13:51
Оценка:
Подскажите как правильно вызвать хранимую ФУНКЦИЮ из oracle.
Использую оракловый ODP.NET не от MS.
Есть:
CREATE OR REPLACE function my_func(i in integer) return integer as
res integer;
begin
res := i + 1;
return res;
end;

и
CREATE OR REPLACE procedure my_proc(i in integer, r out integer)
as
begin
r := i + 1;
end;

Код:
OracleConnection con = new OracleConnection(connectionString);
con.Open();
OracleCommand command = con.CreateCommand();
command.CommandText = "my_proc";
command.CommandType = System.Data.CommandType.StoredProcedure;
command.Parameters.Add(new OracleParameter("p", OracleDbType.Int32, System.Data.ParameterDirection.Input)).Value = 1;
command.Parameters.Add(new OracleParameter("r", OracleDbType.Int32, System.Data.ParameterDirection.Output));
command.ExecuteNonQuery();

так выполняется нормально, но если попытаться вызвать функцию результат 0.
При вызове функции код меняю на:
...
command.CommandText = "my_func";
...
command.Parameters.Add(new OracleParameter("r", OracleDbType.Int32, System.Data.ParameterDirection.ReturnValue));
...


Как правильно вызывать функцию?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.