C# 在Oracle数据库表中存储图像

C# 在Oracle数据库表中存储图像,c#,oracle11g,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); 然后我将这个字节的数组(缓

我必须将图像存储在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文件它失败了。 知道为什么吗?

希望这有帮助。见答案