1
create table test
( id       int,
  blob_col blob
)
 
2 将 'c:\images\aria.gif'文件内容load到blob字段中去
create or replace procedure insert_img as
    f_lob   bfile;
    b_lob   blob;
begin
    insert into blobs values ( 1, empty_blob() )
    return blob_col into b_lob;
 
    f_lob := bfilename( 'c:\images', 'aria.gif' );
    dbms_lob.fileopen(f_lob, dbms_lob.file_readonly);
    dbms_lob.loadfromfile( b_lob, f_lob, dbms_lob.getlength(f_lob) );
    dbms_lob.fileclose(f_lob);
    commit;
end;
 
3 读blob字段内容
create or replace procedure get_img as
    vblob blob;
    buffer raw(32000);
    buffer_size integer := 32000;
    offset integer := 1;
    length number;
  begin
    owa_util.mime_header('image/gif');
    select blob_col into vblob from blobs where id = 1;
    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;