数据库插入图片
我使用plsql developer连接数据库,手动添加能行,也能查出来。但是在对存储过程做测试时,插入图片总是为null,请问数据库大神,问题出在哪里了?
表:picture(id integer,pic blob);
存储过程:
procedure insertPic(idPin in integer,picPin in blob,result out integer,bz out varchar2) is
begin
insert into picture(id,pic) values(idPin,picPin) ;
commit;
result := 0;
bz :='添加成功';
exception
when others then
result := 1;
bz := sqlerrm;
end;
[解决办法]
能不能这样添加 我就不清楚了,但是你传图片的路径
首先创建一个路径
create or replace directory IMAGES as 'd:\pic';
create or replace procedure insertPic(idPin in integer,
picPin varchar2 --文件名 如 abc.jpg
) as
f_lob bfile; --文件类型
v_picPin blob;
begin
insert into picture
(id, pic)
values
(idPin, empty_blob()) return pic into v_picPin; --插入空的blob
f_lob := bfilename('IMAGES', picPin); --获取指定目录下的文件
dbms_lob.fileopen(f_lob, dbms_lob.file_readonly); --以只读的方式打开文件
dbms_lob.loadfromfile(v_picPin, f_lob, dbms_lob.getlength(f_lob)); --传递对象
dbms_lob.fileclose(f_lob); --关闭原始文件
commit;
end;