Доставчикът на ODP.Net от oracle използва обвързване по позиция по подразбиране. За да промените поведението за обвързване по име. Задайте свойството BindByName на true. След това можете да отхвърлите двойната дефиниция на параметрите.
using(OracleCommand cmd = con.CreateCommand()) {
...
cmd.BindByName = true;
...
}