create table t_blob(a int, b varchar(10), c blob);
select * from t_blob;
select * from dba_directories;
–DATA_DIR 变量
create or replace procedure execBlob is
begin
declare
b_file bfile;
b_lob blob;
begin
insert into t_blob(a,b,c) values(1,'ABC', empty_blob()) return c into b_lob;
--为了使PL/SQL编译成功,必须先为该列插入一个empty_blob() 值,return a into b_lob将该列与一个blog类型的变量绑定在一起,以后只要为b_lob赋值,即等于将该值插入了表中。
b_file:=bfilename('DATA_DIR','windows.jpg');
--tmp是建立的文件所在的目录,filename.jpg是文件名;将文件转换为bfile类型
dbms_lob.open(b_file,dbms_lob.file_readonly);--将b_file 以只读的方式打开
dbms_lob.loadfromfile(b_lob,b_file,dbms_lob.getlength(b_file));-- 将b_file中的内容转换到b_lob中
dbms_lob.close(b_file);
commit;
end;
end execBlob;`在这里插入代码片`