zoukankan      html  css  js  c++  java
  • 将文件上传到oracle数据库的Blob字段中

        由于种种原因,需要将文件直接存储到Oracle的Blob字段中,功能已经完成,记录一下实现过程。

        采用winform实现需要的功能,首先在数据库中建表,其中一个字段为Blob类型,怎么创建就不说了。思路很简单,就是文件流读取电脑上的文件,然后通过insert语句将文件的字节流数组存进表中,代码如下:

    //通过Stream读取文件,并转换为byte数组
    Stream stream = File.Open(ChoosedFilePaths[i], FileMode.Open, FileAccess.Read, FileShare.Read); byte[] buffer = new byte[stream.Length]; stream.Read(buffer, 0, buffer.Length); string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; OracleConnection conn = new OracleConnection(constr); OracleParameter param = null; OracleCommand cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "insert into FJG_FILE_MANAGE(NUMBERS,FILE_NAME,FILECONTENT) VALUES('" + attributes.Number + "','" + attributes.FileName + "',:contents,'")"; param = new OracleParameter("contents", OracleType.Blob, buffer.Length); param.Value = buffer; cmd.Parameters.Add(param); try { conn.Open(); cmd.ExecuteNonQuery(); } catch(System.Exception e) { log.Append("上传状态:\t失败!\r\n" + "失败原因:\t" + e1.Message + "\r\n\r\n"); } finally { cmd.Close(); }

    本来采用的是OleDb,后来测试发现不好使,好像是Provider的问题,然后改为OracleClient来进行上传,OracleClient不需要Provider。

    关键是sql语句中Blob字段的参数要写成“:ParameterName”的形式。

  • 相关阅读:
    Tplmap-20210117
    SSRFmap-20210203
    SQLmap-1.5.6.5
    SecPoint Port Scanner v4.0
    pycharm+selenium 自动化打开百度网页 停止 并 关闭
    python+selenium自动化的简单的百度搜索代码
    selenium.common.exceptions.SessionNotCreatedException
    Postman断言状态码
    TLS和SSL的区别
    五大类HTTP状态码
  • 原文地址:https://www.cnblogs.com/neverstop/p/UploadToBlob.html
Copyright © 2011-2022 走看看