I have dotConnect 5.25 Express, Oracle 10.2.0.1 and table
table T
id raw(16)
data blob
When insert
OracleCommand cmd = new OracleCommand();
cmd.Connection = myConnection;
cmd.CommandText = "insert into t (id, data) values (:id, :data)";
cmd.Parameters.Add("id", OracleDbType.Blob, 16);
cmd.Parameters[0].Value = new byte[16] {...}
cmd.Parameters.Add("data", OracleDbType.Blob);
cmd.Parameters[1].Value = File.ReadAllBytes(fileName);
cmd.ExecuteNonQuery();
It works correct.
When update
OracleCommand cmd = new OracleCommand();
cmd.Connection = myConnection;
cmd.CommandText = "update t set data = :data where id = :id";
cmd.Parameters.Add("id", OracleDbType.Blob, 16);
cmd.Parameters[0].Value = new byte[16] {...}
cmd.Parameters.Add("data", OracleDbType.Blob);
cmd.Parameters[1].Value = File.ReadAllBytes(fileName);
cmd.ExecuteNonQuery();
It doesn't work. Error ORA-00932 - inconsistent datatypes.
When on update i'm writing
cmd.Parameters.Add("data", OracleDbType.Raw);
it works.
Why doesn't work update with OracleDbType.Blob?
Why work insert with cmd.Parameters.Add("id", OracleDbType.Blob, 16)?
Thank you very much.