create table user_m
(
userid varchar2(10),
photo blob
);
procedure get_img(vuserid varchar2) is
vblob blob;
buffer raw(32000);
buffer_size integer := 32000;
offset integer := 1;
length number;
begin
owa_util.mime_header('image/gif');
select photo into vblob from user_m where userid = vuserid;
length := dbms_lob.getlength(vblob);
while offset < length loop
dbms_lob.read(vblob, buffer_size, offset, buffer);
htp.prn(utl_raw.cast_to_varchar2(buffer));
offset := offset + buffer_size;
end loop;
exception
when others then
htp.p(sqlerrm);
end;
解释:
在配置好pl/sql网关后,就可以调用这个存储过程例如:get_img?vuserid=1000
这里用到blob字段类型和对blob进行read操作的dbms_lob.read,以及在浏览器中
显示过程htp.prn,owa_util.mime_header('image/gif')这个过程提示告诉浏览器
显示的是一个图片。