“Сколько же можно наступать на грабли от Oracle”, сказал я себе и решил написать этот пост. ODP.NET это реализация ADO.NET для работы с Oracle. Перечислю некоторые тонкости биндинга параметров в ODP.NET. Изначально имеем код запроса, который корректнен и работает: Начальный пример var oCom = new OracleCommand { CommandText = @"begin :outP := krn_setting_iapi.get_v(:inpP1,:inpP2,:inpP3); end;", }; oCom.Parameters.Add("outP", OracleDbType.Varchar2, 100, null, ParameterDirection.Output); oCom.Parameters.Add("inpP1", OracleDbType.Varchar2, 20, " first ", ParameterDirection.Input); oCom.Parameters.Add("inpP2", OracleDbType.Varchar2, 20, "second", ParameterDirection.Input); oCom.Parameters.Add("inpP3", OracleDbType.Varchar2, 20, " first ", ParameterDirection.Input); Тонкость 1. Называется “У вас нет такого геммора? Тогда Oracle идет к вам! ”. Просто так менять порядок биндинга переменных ...