Подскажите как правильно вызвать хранимую ФУНКЦИЮ из 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));
...
Как правильно вызывать функцию?