хранение изображения в таблице базы данных Oracle - PullRequest
1 голос
/ 19 марта 2012

Я должен сохранить изображение в таблице базы данных Oracle. Для этого я читаю загруженный файл в виде байта массива

    string fileName = Server.MapPath("files") + @"/columnsdd.txt";
    Stream str = Request.Files[0].InputStream;
    byte[] buffer = new byte[str.Length];
    str.Read(buffer, 0, buffer.Length);

и затем я передаю этот байт массива (буфера) хранимой процедуре.

    OracleCommand cmd = new OracleCommand();
    cmd.Connection = (new OracleConnection(connec));
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "InsetImag";
    OracleParameter param1 = new OracleParameter();
    param1.ParameterName = "image";
    param1.Direction = ParameterDirection.Input;
    param1.Value = buffer;
    param1.OracleType = OracleType.Blob;

Хранимая процедура, использованная выше:

create or replace procedure InsetImag(image in Blob,imageNAME in  Varchar)
is
Begin
 insert into Images values(image,'xyz.jpg');
ENd;

Определение для таблицы изображений

Column | DataType
 Image | Blob
 ImageName | Varchar2(20)

Но при попытке вставить изображение в БД я получаю

  ora-01460:unimplemented or unreasonable conversion requested

Вышеуказанный код работает нормально, если я загрузил PDF-файл, но он не работает для файлов jpg и doc. Есть идеи почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...