一、创建测试表
create table t_blob(a int, b varchar(10), c blob);
二、创建数据库目录,映射到服务器指定目录
create directory ffolder as '/home/u01/app/oracle';
三、往目录中存放图片,如filename.jpg(略)
注:此目录必须是Oracle服务器上的目录,非客户端目录
四、使用plsql程序块往blob中存取图片
declare
b_file bfile;
b_lob blob;
begin
insert into t_blob(a,b,c) values(1,'ABC', empty_blob()) return c into b_lob;
--为了使PL/SQL编译成功,必须先为该列插入一个empty_blob() 值,return a into b_lob将该列与一个blog类型的变量绑定在一起,以后只要为b_lob赋值,即等于将该值插入了表中。
b_file:=bfilename('tmp','filename.jpg');
--tmp是建立的文件所在的目录,filename.jpg是文件名;将文件转换为bfile类型
dbms_lob.open(b_file,dbms_lob.file_readonly);--将b_file 以只读的方式打开
dbms_lob.loadfromfile(b_lob,b_file,dbms_lob.getlength(b_file));-- 将b_file中的内容转换到b_lob中
dbms_lob.close(b_file);
commit;
end;
/
五、查询表中blob字段
select * from t_blob;