`

oracle 存BLOB和读取

 
阅读更多
   public void savaSoftFile(InputStream inputStream,String userid) {
    // 传的是存入数据库图片的id
        Connection conn=getConn();
    Statement st = null;
    BLOB blob = null; // 图片类型
    OutputStream outputStream = null; // 输出流
    File file = null; // 文件
   
    ResultSet rs = null;
    try {
    conn.setAutoCommit(false); // 事物由程序员操作
    st = conn.createStatement();
    st.executeUpdate( "update  SOFTDEPFILE  set  DEPFILE = empty_blob() where ID='"
    + userid + "'");
    rs = st.executeQuery("select DEPFILE from SOFTDEPFILE  where id='"
    + userid + "' ");
    if (rs.next()) {
    blob = (BLOB) rs.getBlob(1);
    outputStream = blob.getBinaryOutputStream();
   
    byte[] b = new byte[blob.getBufferSize()];
    int len = 0;
    while ((len = inputStream.read(b)) != -1) {
    System.out.println(len);
    outputStream.write(b, 0, len);
    }
    }

    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } finally {
    try {
    inputStream.close();
    outputStream.flush();
    outputStream.close();
    rs.close();
    st.close();
    conn.commit();
    conn.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    }
       
       
        public  void writeImg(OutputStream os,String userid) {  
         
            try {  
              Connection conn=getConn();
                Statement stmt = conn.createStatement();  
                ResultSet rs = stmt.executeQuery("select uploadpic from pub_usertable where  userid='"
    + userid + "'");  
                byte[] b = new byte[1024];  
                if (rs.next()) {  
                    Blob blob = rs.getBlob(1);  
                    InputStream is = blob.getBinaryStream();  
                    int i = 0;  
                    while ((i = is.read(b)) != -1) {  
                        os.write(b, 0, i);  
                    }  
                    os.close();  
                    is.close();  
                }  
                rs.close();  
                stmt.close();  
                conn.close();  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        } 
分享到:
评论

相关推荐

    oracle blob转文件读取

    ### Oracle Blob类型转换为文件读取的相关知识点 ...通过以上内容,我们可以了解到如何在C#中实现Oracle数据库中Blob类型的读取和保存操作。这对于处理数据库中的多媒体文件等二进制数据非常有用。

    oracle中读取blob字段.doc

    通过以上步骤,我们已经了解了如何在Oracle数据库中读取和写入BLOB字段。这些技术对于处理大量的二进制数据非常有用,特别是在需要存储和检索图像、音频或视频文件的情况下。需要注意的是,在实际应用中还需要考虑...

    oracle查询blob字段照片(jpeg) 像素大小sql

    当处理Blob类型的数据时,通常会使用Oracle提供的包`DBMS_LOB`来进行操作,因为它提供了丰富的函数和过程来读取、写入、拷贝以及处理Blob数据。 ### 2. JPEG格式的图片 JPEG(Joint Photographic Experts Group)...

    oracle中的BLOB(照片)转换到mysql中

    - **数据量限制**:检查Oracle和MySQL对BLOB字段的大小限制,确保数据不会超出范围。Oracle的BLOB最大可存储4GB,而MySQL的LONGBLOB同样可存储4GB。 - **性能考虑**:大量BLOB数据的转换可能会消耗大量时间和带宽,...

    C#访问oracle数据库类,带blob字段读写

    读取Blob字段时,可以创建一个`OracleBinary`对象,然后使用`GetValue`方法获取Blob数据。写入Blob字段时,先创建`OracleParameter`对象,将其Direction设置为` ParameterDirection.Input `,OracleDbType设置为`...

    批量导出ORACLE数据库BLOB字段生成文件

    通过这种方式,你可以有效地管理和处理存储在Oracle数据库中的大量BLOB数据,使其能够以文件形式在本地系统上访问和使用。 总之,批量导出Oracle数据库中的BLOB字段是一项技术性较强的任务,涉及到数据库连接、SQL...

    java中读取ORACLE中BLOB字段存储的图片

    ### Java中读取Oracle数据库BLOB字段存储的图片方法详解 #### 一、背景与目的 在实际的应用开发过程中,经常会有将图片等二进制数据存入数据库的需求。Oracle数据库支持通过BLOB(Binary Large Object)类型来存储...

    图片存入Oracle中,用clob和blob两种方式

    下面将详细介绍这两种数据类型以及如何在Oracle中使用它们存储和读取图片。 1. **CLOB数据类型**: `CLOB`数据类型用于存储大量的字符数据,最大可达到4GB。虽然主要用于存储文本,但在本例中,由于图片可以被转换...

    使用hibernate对oracle读取blob

    本文将详细介绍如何使用Hibernate和JDBC读取和存储Oracle数据库中的Blob对象。 ### 1. Hibernate Blob操作 在Hibernate中,Blob对象通常与Java的`java.sql.Blob`接口相对应。在实体类中,你可以定义一个Blob类型的...

    ORACLE中BLOB字段导入到SQL SERVER中的IMAGE字段

    本篇文章将详细探讨如何将ORACLE数据库中的BLOB(Binary Large Object)字段导入到SQL SERVER中的IMAGE字段,这通常涉及到数据转换、数据迁移以及可能的数据类型兼容性问题。 首先,让我们了解BLOB和IMAGE字段的...

    oracle(blob转换为clob)

    在Oracle数据库环境中,数据类型BLOB(Binary Large Object)用于存储大量的二进制数据,如图像、音频或视频文件,而CLOB(Character Large Object)则用于存储大量文本数据。在某些情况下,可能需要将BLOB类型的...

    Oracle 超大文件的保存和读取

    在Oracle数据库存储超大文件时、以流的方式分段读取和保存,避免内存溢出。本工具类提供两个方法: 1、读取文件保存到Oracle数据库Blob字段(支持超大文件) 2、从数据库中读出大字段到文件中(分块读取)

    oracle blob 字段 读写 delphi

    Oracle数据库中的BLOB(Binary Large Object)字段是用来存储大量二进制数据的,例如图片、文档或音频文件。在Delphi编程环境中,处理这类数据时需要掌握特定的API调用和方法。本篇文章将深入探讨如何在Delphi中对...

    基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案.pdf

    本文介绍了一种基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案,展示了JSP技术、ORACLE数据库BLOB字段、坐标点的存储和读取、图形的显示、排样数据表设计、Samplegraph.jsp的功能、JAVA类的应用等知识点。

    pb写的从oracle库中读取和保存图片

    标题中的“pb写的从oracle库中读取和保存图片”是指使用PowerBuilder(PB)这一编程工具,通过连接Oracle数据库,实现对存储在数据库中的图片数据进行读取、处理和保存到本地文件系统的功能。Oracle数据库中可能以...

    blob_oracle.rar_blob_blob oracle_c++ oracle blob_oracle_oracle

    总之,Oracle的BLOB类型提供了处理大量二进制数据的能力,而C++的OCI库为开发者提供了强大的工具,使得在应用程序中存储和检索这些数据变得可能。通过学习和理解上述知识点,你可以有效地管理Oracle数据库中的大型二...

    c#Blob图片在oracle上读取、保存、上传

    c#-操作数据库oracle的小代码,提供用于学习。代码主要实现从oracle读取、保存、上传图片等功能,使用了Oracle.DataAccess.dll,想了解相关知识的欢迎下载,有问题的请给我留言,谢谢。

    深入浅析mybatis oracle BLOB类型字段保存与读取

    可以考虑分块读取和写入BLOB数据,或者使用流式处理。在实际应用中,你可能还需要处理事务管理和错误处理,以确保数据的一致性和完整性。 总结起来,MyBatis与Oracle结合处理BLOB字段时,关键步骤包括:正确设置...

    Oracle导出Clob,Blob工具

    Oracle数据库在处理大对象(LOB)类型,如Clob(Character Large Object)和Blob(Binary Large Object)时,有时需要专门的工具来进行高效且安全的数据导出。这些字段通常存储大量的文本或二进制数据,比如长篇文档...

Global site tag (gtag.js) - Google Analytics