Я должен сохранить изображение в таблице базы данных 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.
Есть идеи почему?