Selvom jeg ikke kan se noget galt med dit eksempel, spekulerer jeg på, om du bliver ramt af den gamle BindByName problem. Som standard binder ODP.NET parametre til forespørgslen i den rækkefølge, de føjes til samlingen, i stedet for baseret på deres navn, som du ønsker. Prøv at indstille BindByName til true på din OracleCommand objekt og se, om det løser problemet.
Jeg har haft dette problem så mange gange, at jeg bruger min egen fabriksmetode til at oprette kommandoer, som automatisk indstiller denne egenskab til true for mig.
Klassisk ubrugelig Oracle-dokumentation her