plsql 读取blob为图片

由于去客户现场采集的图片  需要回来识别  所以需要 从数据库读取blob转为图片。

参考了 别人的博客  成功实现了  做个笔记

下面是代码。

plsql 读取blob为图片_第1张图片


1.创建文件夹变量

create or replace directory MYDIR as 'D:\tang'

2.赋权限

grant read,write on directory MYDIR to user01

3.执行read_blob_pic过程

exec  read_blob_pic;

代码如下:

create or replace procedure read_blob_pic is
  l_file utl_file.file_type;
  l_lob blob;
  l_offset int:= 1;
  l_amount int:= 32767;
  l_len int;
  l_buffer raw(32767);
begin
  select decode_image  into l_lob from BAG_VALIDATE t where bag_validate_id = 4863;
  l_file:= utl_file.fopen('MYDIR', 'blood.jpg', 'wb', 32767);
  l_len:= dbms_lob.getlength(l_lob);
  while l_offset< l_len loop
    dbms_lob.read(l_lob, l_amount, l_offset, l_buffer);
    utl_file.put_raw(l_file, l_buffer, true);
    l_offset:= l_offset+ l_amount;
  end loop;
  utl_file.fclose(l_file);
end read_blob_pic;
如有不对 请见谅  感恩!那些无私分享的大神!

你可能感兴趣的:(PLSQL)