`
jiajunde
  • 浏览: 170236 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

插入oracle blob

阅读更多
package db;

import java.io.BufferedInputStream;    
import java.io.FileInputStream;    
import java.io.PrintStream;    
import java.sql.Connection;    
import java.sql.DriverManager;    
import java.sql.ResultSet;    
import java.sql.SQLException;    
import java.sql.Statement;    
   
public class Test {    
    private Connection conn;    
   
    /**   
     * 得到一个数据库的连接   
     *    
     * @return 返加Connection对象   
     */   
    public Connection getConnection() {    
        try {    
            Class.forName("oracle.jdbc.driver.OracleDriver");    
            conn = DriverManager.getConnection(    
                    "jdbc:oracle:thin:@IP地址:1521:实例", "用户名", "密码");    
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {    
            e.printStackTrace();
        }    
        return conn;    
    }    
   
    /**   
     * 向表中插入二进制数据
     * @param path数据所在的路径   
     * @return 成功或失败   
     */   
    public int insertImage(String path) throws Exception {    
        int i = 0;    
        Statement st = null;
        ResultSet rs = null;
        conn=this.getConnection();
            
        conn.setAutoCommit(false);//设置数据库为不自动提交,必须   
        st = conn.createStatement();    
        //先插入一个空对象,这里插入Empty_BLOB()函数    stuid text
        i = st.executeUpdate("insert into testbo(stuid,text) values(1,Empty_BLOB())");    
        //进行行级锁
        rs = st.executeQuery("select text from testbo where stuid=1 for update");    
        if (rs.next()) {
            //得到流
            oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob(1);    
            //从得到的低级流构造一个高级流    
            PrintStream ps = new PrintStream(blob.getBinaryOutputStream());    
            BufferedInputStream bis = new BufferedInputStream(    
                    new FileInputStream(path));
            byte[] buff = new byte[512];
            int n = 0;
            //从输入到输出    
            while ((n = bis.read(buff)) != -1) {
                ps.write(buff, 0, n);
            }    
            //清空流的缓存
            ps.flush();    
            //关闭流,注意一定要关
            ps.close();
            bis.close();
        }
        rs.close();
        st.close();
        conn.close();
        return i;
    }
   
    public static void main(String[] args) throws Exception {    
        Test test=new Test();    
        test.insertImage("C:/MyDocuments/kettledemo/ANKG.SN.2008309124211.00.BHZ");
        System.out.println("YES");    
    }    
}

 

分享到:
评论

相关推荐

    oracle blob转文件读取

    ### Oracle Blob类型转换为文件读取的相关知识点 在软件开发过程中,尤其是在处理数据库中的二进制大对象(Binary Large Object, 简称BLOB)时,经常需要将数据库中的BLOB数据转换为文件进行读取或处理。本文将详细...

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

    然后,通过类似的方法,读取本地文件并将其内容插入到MySQL的BLOB字段中。在Java中,你可以使用`PreparedStatement`的`setBinaryStream()`方法: ```java FileInputStream in = new FileInputStream(...

    oracle blob 字段 读写 delphi

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

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

    在Oracle数据库中,BLOB(Binary Large Object)字段是用来存储大量二进制数据的类型,如图片、视频或任何非文本文件。与之相对的是CLOB(Character Large Object),用于存储大量的文本数据。在Java应用中,特别是...

    Oracle blob字段上传下载

    ### Oracle Blob字段上传与下载详解 #### 一、概述 在数据库系统中,二进制大对象(Binary Large Object,简称BLOB)是一种用于存储大量二进制数据的数据类型,例如图像、音频或视频文件等。Oracle数据库支持Blob...

    oracle Blob

    Oracle中的Blob类型是一种用于存储大型二进制对象的数据类型,如图像、音频或视频文件等。Blob相比于long字段,提供了更好的性能,特别是处理大量非结构化数据时。Blob的使用涉及多个步骤,包括创建、插入、读取和...

    Python如何操作Oracle的Blob字段

    Python如何操作Oracle的Blob字段,

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

    本篇文章将深入探讨如何使用C#语言访问Oracle数据库,并重点讲解处理Blob(Binary Large Object)字段的读写操作。 首先,让我们理解C#访问Oracle数据库的基本原理。Oracle数据库提供了一个名为ODP.NET(Oracle ...

    mysql oracle 插入blob数据实例源码

    本篇文章将深入探讨如何在MySQL和Oracle数据库中插入Blob数据,并提供相关的源码实例。 一、MySQL中的Blob数据插入 MySQL提供了多种方式插入Blob数据,包括使用PreparedStatement接口。以下是一个Java源码示例: ...

    java对oracle数据库中blob字段的处理

    为了解决这个问题,可以采用一种间接的方法:首先在本地数据库创建一个临时表,并将BLOB数据插入到该临时表中;然后,通过DBLink从远程数据库选择并操作这些数据。这种方法避免了直接通过DBLink处理大对象数据的问题...

    blob_oracle.rar_blob_blob oracle_c++ oracle blob_oracle_oracle

    在Oracle数据库系统中,BLOB(Binary Large Object)是一种数据类型,用于存储大量的二进制数据,如图像、音频文件或任何非结构化的文本数据。本教程将详细讲解如何使用C++与Oracle数据库进行交互,特别是针对BLOB...

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

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

    C# Oracle Blob格式的文档上传与下载

    本话题主要探讨了如何使用C#语言来实现Oracle数据库中的Blob类型字段进行文档的上传与下载操作。以下是对这一主题的详细解释。 首先,Oracle数据库中的Blob(Binary Large Object)类型用于存储大量的二进制数据,...

    使用JDBC4.0操作Oracle中BLOB类型的数据方法

    在Java的JDBC4.0版本中,Oracle数据库的BLOB类型数据操作变得更加方便。BLOB(Binary Large Object)是用来存储大对象,如图像、音频或视频文件等二进制数据的数据库字段类型。以下是对使用JDBC4.0操作Oracle中BLOB...

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

    在数据库管理中,存储非结构化数据...综上所述,`CLOB`和`BLOB`都是在Oracle中存储图片的有效方法,具体选择哪种方式取决于应用场景和需求。`ClobAndBlob`工具提供了一种便捷的方式来体验和比较这两种方式的使用效果。

    JDBC+Hibernate将Blob数据写入Oracle

    代码首先通过`empty_blob()`函数插入一个空的BLOB,接着使用`FOR UPDATE`子句查询这个BLOB,从而获取到其游标。随后,通过读取本地文件(本例中是"oraclejdbc.jar")的数据,将其写入到BLOB中。这里值得注意的是,...

    JAVA操作Oracle blob类型

    在Java编程中,Oracle数据库中的BLOB(Binary Large Object)类型用于存储大量的二进制数据,如图片、视频或文档。这篇博客文章“JAVA操作Oracle blob类型”将深入探讨如何在Java应用程序中有效地管理和操作Oracle...

    oracle中读取blob字段.doc

    ### Oracle中BLOB字段的读取与操作 #### 一、引言 在数据库系统中,BLOB(Binary Large Object)是一种用于存储大量二进制数据的数据类型,例如图像、音频或视频文件等。在Oracle数据库中,BLOB类型特别适用于处理...

    oracle Blob Clob 大数处理 代码

    Oracle数据库系统支持两种类型的大对象(LOB)数据:BLOB(Binary Large Object)和CLOB(Character Large Object)。这两种类型都是用于存储大量数据,BLOB用于二进制数据,如图片、音频或视频文件,而CLOB则用于...

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

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

Global site tag (gtag.js) - Google Analytics