请问
create or replace procedure img_insert (filename varchar2) as     f_lob bfile;     b_lob blob;
     num int;
   begin
     num   :=   0;
     while   num<100   loop  
     insert into person (id,pname,birth,document) values (seq_person.nextval,'aaa',sysdate,empty_blob ()) return document into b_lob;
     f_lob:= bfilename ('AAA', filename);     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);
     end loop;
   commit;  end;
执行方法是 exec img_insert('1.jpg');插入一条没问题,加上循环就半天没反应了
这个写的有哪里有问题?数据也没插入

解决方案 »

  1.   

    create or replace procedure img_insert (filename varchar2) as      f_lob bfile;      b_lob blob; 
         num int; 
       begin 
         num   :=   0; 
         while   num <100   loop   
         insert into person (id,pname,birth,document) values (seq_person.nextval,'aaa',sysdate,empty_blob ()) return document into b_lob; 
         f_lob:= bfilename ('AAA', filename);      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); 
         end loop; 
         
         num := num+1;--漏了这句吧?
       commit;   end; 
      

  2.   

     num := num+1;--漏了这句吧? 
     这句话应该在
     end loop 之上吧