使用plsql往Oracle的blob插入图片

一、创建测试表

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;

使用plsql往Oracle的blob插入图片_第1张图片

你可能感兴趣的:(数据库)