- 浏览: 199025 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
aslijiasheng:
值得学习,对我有帮助
Spring定时器的简单使用 -
hlt:
...
Spring定时器的简单使用 -
痛苦的人:
对我太有帮助了。
oracle定时器简单操作 -
dongbiying:
...
oracle定时器简单操作 -
happygao521:
兄弟,快一年了,加油。
今天毕业了
虽然用blob的情况不多,但是还是得了解一下,网上看得有点乱,而且没有看到从数据读blob的。在此总结一下:
数据库中的建表语句如下:
以上代码必须导入Oracle驱动包
数据库中的建表语句如下:
create table blogtest(id number primary key,name varchar2(20),picture blob);
package August; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class OracleBlobTest { public static void main(String[] args) { } public static void readBlob() { try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@127.0.0.1:1521/july", "scott", "snaillocke"); Statement st = conn.createStatement(); PreparedStatement ps = conn.prepareStatement("select * from BLOBTEST where id = ?"); ps.setInt(1, 1); ResultSet rs = ps.executeQuery(); rs.next(); oracle.sql.BLOB imgBlob = (oracle.sql.BLOB) rs.getBlob(3); // 将二进制数据写入BLOB try{ FileOutputStream outStream = new FileOutputStream("D:/oracleback.png"); InputStream inStream = imgBlob.getBinaryStream(); byte[] buf = new byte[10240]; int len; while ((len = inStream.read(buf)) > 0) { outStream.write(buf, 0, len); } inStream.close(); outStream.close(); }catch(Exception e) { e.printStackTrace(); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public static void writeBlob() { try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@127.0.0.1:1521/july", "scott", "snaillocke"); Statement st = conn.createStatement(); // 插入一个空对象empty_blob() // 锁定数据行进行更新,注意“for update”语句 PreparedStatement ps = conn.prepareStatement("insert into BLOBTEST (ID, NAME, PICTURE) values (1,'fang.jpg',?)"); // 通过ORALCE.SQL.BLOB/CLOB.EMPTY_LOB()构造空BLOB/CLOB对象 ps.setBlob(1, oracle.sql.BLOB.empty_lob()); ps.execute(); ps.close(); // 再次对读出BLOB/CLOB句柄 ps = conn .prepareStatement("SELECT * FROM BLOBTEST WHERE ID=? FOR UPDATE"); ps.setInt(1, 1); ResultSet rs = ps.executeQuery(); rs.next(); oracle.sql.BLOB imgBlob = (oracle.sql.BLOB) rs.getBlob(3); // 将二进制数据写入BLOB try{ FileInputStream inStream = new FileInputStream("D:/My Pictures/oracle.png"); OutputStream outStream = imgBlob.getBinaryOutputStream(); byte[] buf = new byte[10240]; int len; while ((len = inStream.read(buf)) > 0) { outStream.write(buf, 0, len); } inStream.close(); outStream.close(); }catch(Exception e) { e.printStackTrace(); } // 再将Blob字段更新到数据库 ps = conn .prepareStatement(" update BLOBTEST set PICTURE=?"); ps.setBlob(1, imgBlob); ps.executeUpdate(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } }
以上代码必须导入Oracle驱动包
发表评论
-
oracle语句性能调优
2011-05-24 19:53 944oracle语句性能调优 -
触发器Helloworld
2011-05-06 21:32 1075今天想弄一个oracle中触发器的helloworld,结果弄 ... -
oracle新增列及设置默认值
2011-02-07 00:13 2768有一张表A,有b ,c 两个字段; 向A表中插入数据R: 1 ... -
关于to_number和to_char函数
2011-02-06 20:24 1710to_number是将字符串按照指定的格式专为数字,相反,to ... -
mylost存储过程和判断是否存在表的函数
2011-02-06 19:57 1069create or replace procedure get ... -
JDBC操作Oracle
2010-10-01 10:37 2948package procudure; import ja ... -
mysql设置备忘
2010-09-27 09:58 837消除操作错误时候的“滴滴”声: 打开你的mysql的安装目录 ... -
oracle存储过程中简单地调用另一个有返回值的存储过程
2010-09-16 12:56 24704先建一张测试表: create table WWT_TABL ... -
oracle中merge的简单使用
2010-09-05 20:14 1403merge在oracle用以从另一张表中取数据插入到一张表中, ... -
oracle定时器简单操作
2010-09-05 12:50 16110首先创建一张测试表: create table JOBTES ... -
Oracle 操作备忘
2010-09-04 13:20 740在Oracle安装文件夹如:C:\oracle\network ... -
Oracle常用数据字典的查询
2010-07-25 16:23 976下面按类别列出一些Oracle用户常用数据字典的查询使用方法。 ... -
Oracle数据库相关操作
2010-07-06 17:26 910因为关于数据库的操作 ... -
mysql数据库中外键约束
2010-06-22 20:35 1022mysql外键约束和oracle的外键约束有点不一样, mys ... -
事务的四大属性
2010-06-10 20:24 1660事务的四大属性 数据库事务的属性 数据库事务的属性包括 ... -
线程池和连接池
2010-06-09 21:07 4710线程池的原理: 来看一下线程池究竟是怎么 ... -
数据库中乱码出现的可能原因,个人遇到情况的总结
2010-06-05 09:37 1195在遇到乱码的时候,千万别慌了手脚,引用马士兵老师的一句话:先在 ... -
往数据库里插入中文报错Incorrect string value: '\xA8D......" for column.....
2010-06-04 23:03 3131往数据库里面数据,插 ... -
mysql脚本导入乱码问题
2010-05-23 16:33 1581今天下午把学校要用到的sql数据从sql脚本导入数据库却发现查 ...
相关推荐
### Oracle Blob类型转换为文件读取的相关知识点 ...通过以上内容,我们可以了解到如何在C#中实现Oracle数据库中Blob类型的读取和保存操作。这对于处理数据库中的多媒体文件等二进制数据非常有用。
总结来说,从Oracle的BLOB类型字段中提取并转换到MySQL的过程涉及到查询、导出、上传等多个步骤。在实际操作中,需要对数据库API有深入理解,并注意数据的兼容性和性能优化。通过以上方法,你可以顺利地在两个数据库...
### Oracle中BLOB字段的读取与操作 #### 一、引言 在数据库系统中,BLOB(Binary Large Object)是一种用于存储大量二进制数据的数据类型,例如图像、音频或视频文件等。在Oracle数据库中,BLOB类型特别适用于处理...
在Java的JDBC4.0版本中,Oracle数据库的BLOB类型数据操作变得更加方便。BLOB(Binary Large Object)是用来存储大对象,如图像、音频或视频文件等二进制数据的数据库字段类型。以下是对使用JDBC4.0操作Oracle中BLOB...
在C#中,我们使用`OracleDbType.Blob`类型来处理Blob字段。读取Blob字段时,可以创建一个`OracleBinary`对象,然后使用`GetValue`方法获取Blob数据。写入Blob字段时,先创建`OracleParameter`对象,将其Direction...
在Oracle数据库环境中,数据类型BLOB(Binary Large Object)用于存储大量的二进制数据,如图像、音频或视频文件,而CLOB(Character Large Object)则用于存储大量文本数据。在某些情况下,可能需要将BLOB类型的...
### Java中读取Oracle数据库BLOB字段存储的图片方法详解 #### 一、背景与目的 在实际的应用开发过程中,经常会有将图片等二进制数据存入数据库的需求。Oracle数据库支持通过BLOB(Binary Large Object)类型来存储...
本篇文章将详细探讨如何将ORACLE数据库中的BLOB(Binary Large Object)字段导入到SQL SERVER中的IMAGE字段,这通常涉及到数据转换、数据迁移以及可能的数据类型兼容性问题。 首先,让我们了解BLOB和IMAGE字段的...
当处理Blob类型的数据时,通常会使用Oracle提供的包`DBMS_LOB`来进行操作,因为它提供了丰富的函数和过程来读取、写入、拷贝以及处理Blob数据。 ### 2. JPEG格式的图片 JPEG(Joint Photographic Experts Group)...
本文将详细介绍如何在Java中有效地读取`BLOB`类型的大字段,帮助解决程序员们常遇到的难题。 #### BLOB类型的概述 `BLOB`类型是关系型数据库中用于存储大量二进制数据的一种数据类型。它适用于存储诸如图片、声音...
Oracle数据库是全球广泛使用的大型企业级数据库管理系统,它支持多种数据类型,包括BLOB(Binary Large Object),用于存储图像、文档等二进制大对象。本教程将详细讲解如何批量导出Oracle数据库中的BLOB字段并生成...
本篇文章将深入剖析如何使用MyBatis框架在Oracle数据库中对BLOB类型字段进行保存和读取。 首先,BLOB字段设计用于存储非结构化的二进制大数据,如图像、音频文件或任何其他形式的字节流。相反,CLOB字段则适用于...
本文将详细介绍如何使用Hibernate和JDBC读取和存储Oracle数据库中的Blob对象。 ### 1. Hibernate Blob操作 在Hibernate中,Blob对象通常与Java的`java.sql.Blob`接口相对应。在实体类中,你可以定义一个Blob类型的...
Oracle中的Blob字段类型是用于存储大量二进制数据的数据类型,比如图像、音频或大型文档。Blob代表Binary Large Object,其最大容量可达4GB。在Oracle数据库中,Blob与Clob(Character Large Object)、Bfile和Nclob...
在IT领域,尤其是在Java开发与Oracle数据库交互的过程中,处理BLOB(Binary Large Object)类型字段是一项常见且重要的任务。BLOB字段主要用于存储大量的二进制数据,如图像、音频、视频或任何其他非文本格式的数据...
在 Oracle 数据库中,BLOB 类型对应的数据库类型是 BLOB,在 MySQL 中对应的类型是 BLOB。 MyBatis 提供了对 CLOB 和 BLOB 类型的内置支持,通过将 CLOB 类型映射到 Java 的 String 类型,BLOB 类型映射到 byte[] ...
此文档是对于oracle数据库中blob类型字段二进制大对象的读取和解析
我们使用了 Java 语言和 JDBC 驱动程序来实现数据的导出,并将 Image 类型数据写到文件中,然后将文件中的数据读取出来,并将其设置到 Oracle 的 CLOB 字段中。这种方法可以帮助我们实现不同数据库管理系统之间的...
下面将详细介绍这两种数据类型以及如何在Oracle中使用它们存储和读取图片。 1. **CLOB数据类型**: `CLOB`数据类型用于存储大量的字符数据,最大可达到4GB。虽然主要用于存储文本,但在本例中,由于图片可以被转换...