Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据。
写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cursor,你必须使用cursor对
blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入,那么如何获得Blob的cursor呢?
这需要你先插入一个empty的blob,这将创建一个blob的cursor,然后你再把这个empty的blob的cursor
用select查询出来,这样通过两步操作,你就获得了blob的cursor,可以真正地写入blob数据了。
【处理流程】
Sql代码 
--Oracle中的Lob类型示例表
createtableuser_info
(
user_id number(10)primarykey,
namevarchar2(20),
image blob
);
--1. 插入空blob: (如果在数据库中采用默认值方式对Blob字段赋值, 此步可省略)
insertintouser_infovalues(1,'Jacky', empty_blob());
--2. 获得blob的cursor:
selectimagefromuser_infowhereuser_id = ?forupdate;
--3. 用cursor往数据库写数据:
updateuser_infosetimage = ?whereuser_id = ?;
--Oracle中的Lob类型示例表
create table user_info
(
user_id number(10) primary key,
name varchar2(20),
image blob
);
--1. 插入空blob: (如果在数据库中采用默认值方式对Blob字段赋值, 此步可省略)
insert into user_info values (1, 'Jacky', empty_blob());
--2. 获得blob的cursor:
select image from user_info where user_id = ? for update;
--3. 用cursor往数据库写数据:
update user_info set image = ? wh

本文介绍了如何在Oracle数据库中处理Blob字段,包括插入空Blob、获取Blob的cursor以及读取和写入Blob数据的详细步骤,提供了Java代码示例。

1471

被折叠的 条评论
为什么被折叠?



