现在用的代码调试过可以保存图片出来了,但是保存一张图片时间有点长,大概测算了一分钟导出2张照片,这样我现在240w数据,要2年才能导出,不太现实哈,怎么提高效率,或者其他导出图片的方法呢,请各位xdjm指点,谢谢!代码如下
for r_it in c_its loop
    select zp into lk_image
    from xzp
    where gmsfhm=r_it.gmsfhm  and rownum=1;
    lob_len := nvl(dbms_lob.getlength(lk_image),0);
    if lob_len>0 then
       v_fname := r_it.gmsfhm||'.jpg';
       cur_pos := 1;
       outf:=utl_file.fopen('DEMODIR',v_fname,'wb');--,fmax_size);
       while (cur_pos < lob_len) loop
          dbms_lob.read(lk_image,fmax_size,cur_pos,cur_raw);
--          row_len := length(cur_raw);
          utl_file.put_raw(outf,cur_raw);
          utl_file.fflush(outf);
          cur_pos := cur_pos + fmax_size;
       end loop;
       utl_file.fclose(outf);
    end if;
  end loop;
blobutl_fileput_raw效率速度

解决方案 »

  1.   

    这个最好不要用你的这些方法。。你最好一次性把图片全部取出来。然后在前台来解析图片。这样的速度会比你的这个好千倍万倍。。
      

  2.   

    图片多大,图片存储的表空间相关参数如何?
      

  3.   

    不通过数据库过程,直接编程处理,效率提高了很多倍,已经可以在3到4天将300多万数据导出了:)
      

  4.   

    数据库尽量不要多做程序做的事情