Dostawca ODP.Net firmy Oracle domyślnie używa powiązania według pozycji. Aby zmienić zachowanie na powiązanie według nazwy. Ustaw właściwość BindByName na true. Następnie możesz odrzucić podwójną definicję parametrów.
using(OracleCommand cmd = con.CreateCommand()) {
...
cmd.BindByName = true;
...
}