一.写入BLOB
1.先在blob中插入empty_blob()
2.获得对刚刚插入记录的引用
BLOB blob = (BLOB) rs.getBlob("你的blob字段名称");
3.写入
OutputStream out = blob.getBinaryOutputStream();
out.write(ENCYPWD);//注意这里
二.读出BLOB
1.blob = rs.getBlob("你的blob字段名称");
、
2.InputStream is = blob.getBinaryStream();
int length = (int) blob.length();
byte[] buffer = new byte[length];
is.read(buffer);
is.close();
3.你有了is就随便处理了
比如说输出到一个文件
FileOutputStream fo = new FileOutputStream(filename);//数据到的文件名
fo.write(buffer);
fo.close();
一、BLOB操作
1、入库
(1)JDBC方式
//通过JDBC获得数据库连接
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:testdb", "test", "test");
con.setAutoCommit(false);
Statement st = con.createStatement();
//插入一个空对象empty_blob()
st.executeUpdate("insert into TESTBLOB (ID, NAME, BLOBATTR) values (1, "thename", empty_blob())");
//锁定数据行进行更新,注意“for update”语句
ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1 for update");
if (rs.next())
{
//得到java.sql.Blob对象后强制转换为oracle.sql.BLOB
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("BLOBATTR");
OutputStream outStream = blob.getBinaryOutputStream();
//data是传入的byte数组,定义:byte[] data
outStream.write(data, 0, data.length);
}
outStream.flush();
outStream.close();
con.commit();
con.close();
2、出库
//获得数据库连接
Connection con = ConnectionFactory.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//不需要“for update”
ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1");
if (rs.next())
{
java.sql.Blob blob = rs.getBlob("BLOBATTR");
InputStream inStream = blob.getBinaryStream();
//data是读出并需要返回的数据,类型是byte[]
data = new byte[input.available()];
inStream.read(data);
inStream.close();
}
inStream.close();
con.commit();
con.close();
分享到:
相关推荐
oracle dbms_lob
Oracle数据库中LOB的调优.pdf
oracle expdp导出blob字段遇到ora-01555报错的解决方案
Oracle的LOB(CLOB)大字段以及(SYS_LOB$$)清理.txt
您可以通过以下方式访问eslint-config-lob的以外的文件中的规则: { extends : "eslint-config-lob/migrations" } 使用.eslintignore文件来指定.eslintignore应该忽略的文件或目录。 默认情况下,eslint会忽略...
oracle dbms_lob 智能大对象(Blob、Clob)
Laravel开发-eloquent-serialized-lob 雄辩的序列化LOB是允许序列化LOB模式的Laravel5雄辩模型的特征。
Bob-Lob-the-Blob 一个用 C# 和 XNA 构建的横向卷轴平台游戏,其中有一个名为 Bob 的 blob,他的目标是穿越时间收集隐藏的帽子,这是回到他的时间线的关键。
分享一个来自官方的对Oracle LOB字段的性能调优。
只需要安装oracle client在本地,然后配置好tns,输入连接名,用户名,密码,数据表的名称,文件名数据列名以及blob数据列名,就可以批量导出ORACLE数据库BLOB字段生成图片
Oracle中对LOB对象的操作.pdf
Oracle LOB字段处理工具是一款简单的lob字段处理工具
Oracle11g LOB表的操作实例.pdf 学习资料 复习资料 教学资源
ORACLE LOB大对象处理.doc ORACLE LOB大对象处理.doc
oracle-ascii-unload是一个Oracle Pro * C程序,用于将Oracle数据库表中的数据有效地卸载到以control-A分隔的定界ASCII文本文件中(也称为^A或\x01或\001 )。 它本身支持DATE,NUMBER,CHAR,VARCHAR2类型的列。 它...
前端开源库-lobLOB,LOB API包装
LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对像(Binary Large Object),适用于存贮非文本的字节流数据(如程序、图像、影音等)。而CLOB,即字符型大型对像(Character Large Object),则与字符集相关,适于...
包含了官方权威说明。而且有LOB字段的日常维护总结,方便大家交流学习。
NULL 博文链接:https://surfingforrest.iteye.com/blog/711612
前端开源库-lob.zip