ORA-00932: inconsistent datatypes: expected DATE got NUMBER
If you're using ODP.NET, OracleCommand should have a BindByName property which will force the command to bind parameters by their name instead of their order.
const string sql = @"select :parameter2, :parameter1 from dual";using (var cmd = new OracleCommand(sql, conn))using (cmd.Parameters.Add(":parameter1", "FOO"))using (cmd.Parameters.Add(":parameter2", "BAR"))using (var reader = cmd.ExecuteReader()) { reader.Read(); // should print "FOOBAR" Console.WriteLine("{0}{1}", reader.GetValue(0), reader.GetValue(1));}using (var cmd = new OracleCommand(sql, conn) { BindByName = true })using (cmd.Parameters.Add(":parameter1", "FOO"))using (cmd.Parameters.Add(":parameter2", "BAR"))using (var reader = cmd.ExecuteReader()) { reader.Read(); // should print "BARFOO" Console.WriteLine("{0}{1}", reader.GetValue(0), reader.GetValue(1));}
There is a slight performance penalty associated with this, but it's probably small enough to be negligible in most contexts.