例:假设给oracle数据库导入blob类型的图片,图片放在目录G:\images下。
1.先创建一个目录directory,命名为IMAGES; CREATE OR REPLACE DIRE,TORY IMAGES AS ‘G:\test’;或者直接在PlSql Directories目录下新建目录;
2.创建一个存储过程,批量导入blob create or replace procedure img_insert asbeginDECLARE f_lob bfile;–文件类型b_lobblob; –用来存储图片的名称filenamevarchar2(400);begin –循环的初始值for i in 1 .. 100 loop –找出每一列的文件名,因为文件名和图片名称是一样的 select t.flnm into filename from ZS_GC_SNIMDT t where t.id =i; –查找到之后,执行update操作,插入空的blob (注意IMAGES一定要大写) update ZS_GC_SNIMDT set brfl = empty_blob()whereid = i return brfl into b_lob; –获取指定目录下的文件 f_lob := bfilename(‘IMAGES’, filename); — 以只读的方式打开文件 dbms_lob.fileopen(f_lob, dbms_lob.file_readonly);–传递对象 dbms_lob.loadfromfile(b_lob, f_lob, dbms_lob.getlength(f_lob)); –关闭原始文件