请问
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');插入一条没问题,加上循环就半天没反应了
这个写的有哪里有问题?数据也没插入
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');插入一条没问题,加上循环就半天没反应了
这个写的有哪里有问题?数据也没插入
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;
这句话应该在
end loop 之上吧