Изменить Блоб

Павлюченко
Дата: 02.12.2009 17:36:51
На ODP.NET пишу такой код. Что не так?
string cmdstr = "UPDATE TABLE1 SET BLOB_Field = (:BLOBPARAM) WHERE ID = :ID";

                OracleCommand cmd = new OracleCommand(cmdstr, Connections.Oracle);
                cmd.CommandType = CommandType.Text;

                OracleParameter parameter1 = new OracleParameter();
                parameter1.ParameterName = "ID";
                parameter1.OracleDbType = OracleDbType.Decimal;
                parameter1.Direction = ParameterDirection.Input;
                parameter1.Value = fk; // int
                cmd.Parameters.Add(parameter1);

                OracleParameter parameter2 = new OracleParameter();
                parameter2.ParameterName = "BLOBPARAM";
                parameter2.OracleDbType = OracleDbType.Blob;
                parameter2.Direction = ParameterDirection.Input;
                parameter2.Value =  file; // byte[]
                cmd.Parameters.Add(parameter2);

                OracleDataAdapter dataAdapter = new OracleDataAdapter(cmd);
                dataAdapter.UpdateCommand = cmd;
                dataAdapter.UpdateCommand.ExecuteNonQuery();
ORA-00932: inconsistent datatypes: expected - got BLOB

С Insert и Select всё работает на ура.
Denis Popov
Дата: 02.12.2009 17:53:56

Павлюченко wrote:

> На ODP.NET пишу такой код. Что не так?

....

> ORA-00932: inconsistent datatypes: expected - got BLOB

Он точно параметры привязывет по именам, а не по порядку?

Posted via ActualForum NNTP Server 1.4

Павлюченко
Дата: 02.12.2009 17:59:36
Denis Popov,

да снизойдёт на тебя божья благодать! В самом деле. Не ожидал от провайдера такой подставы.
Павлюченко
Дата: 02.12.2009 18:12:29
Поставив to_blob(:BLOBPARAM) валилась ошибка уже связанная с NUMERIC (вторым параметром), но интуиции мне не хватило.
Ещё раз спасибо.
Denis Popov
Дата: 02.12.2009 18:21:47

Павлюченко wrote:

> Поставив to_blob(:BLOBPARAM) валилась ошибка уже связанная с NUMERIC
> (вторым параметром), но интуиции мне не хватило.

Ради интереса: оно требует, чтобы совпадали имена параметров запроса и имена параметров в OracleParameter?
Если сказать, например, parameter1.ParameterName = "XXX" - выругается?

Posted via ActualForum NNTP Server 1.4