ODP.Net-leverantören från oracle använder bind by position som standard. För att ändra beteendet för att binda med namn. Ställ in egenskapen BindByName till true. Då kan du avfärda den dubbla definitionen av parametrar.
using(OracleCommand cmd = con.CreateCommand()) {
...
cmd.BindByName = true;
...
}