Jag har redan gett svaret, men jag tycker att det är värt att nämna här exakt vad roten till mina problem var, ifall någon annan hittar det här föremålet medan de letar efter ett svar på sitt eget problem.
Problemet är att C#-implementeringen av parametriserade frågor för Oracle innehåller en allvarlig och potentiellt farlig bugg - en riktig "grop i det offentliga området":
Det spelar ingen roll vad du namnger dina parametrar; de måste läggas till i den ordning som de visas i frågan.
Se mer här .