将图像存储在Oracle数据库表中

时间:2012-03-19 11:14:54

标签: c# oracle11g

我必须将图像存储在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)

但是,试图将图像插入Db我正在

  ora-01460:unimplemented or unreasonable conversion requested

ABove代码可以正常工作,如果我upd PDF文件但它失败的jpg和doc文件。 知道为什么吗?

0 个答案:

没有答案