BFile实际上是Oracle数据库指向操作系统文件的一个指针。
一下是读取操作系统文件并转为BLOB的代码:
DECLARE
v_bfile BFILE;
v_blob BLOB;
v_dest NUMBER := 1;
v_lang NUMBER := 1;
BEGIN
v_bfile := bfilename('UPGRADE_DIR',
'HE5Q8565.JPG');
--dbms_output.put_line(v_bfile);
dbms_lob.createtemporary(v_blob, TRUE);
dbms_lob.fileopen(v_bfile, dbms_lob.file_readonly);
dbms_output.put_line(dbms_lob.getlength(v_bfile));
dbms_lob.loadblobfromfile(dest_lob => v_blob,
src_bfile => v_bfile,
amount => dbms_lob.getlength(v_bfile),
dest_offset => v_dest,
src_offset => v_lang);
UPDATE bfile_test SET detail = v_blob;
dbms_lob.fileclose(file_loc => v_bfile);
END;
其中, UPGRADE_DIR是一个directory对象。
一下是读取操作系统文件并转为BLOB的代码:
DECLARE
v_bfile BFILE;
v_blob BLOB;
v_dest NUMBER := 1;
v_lang NUMBER := 1;
BEGIN
v_bfile := bfilename('UPGRADE_DIR',
'HE5Q8565.JPG');
--dbms_output.put_line(v_bfile);
dbms_lob.createtemporary(v_blob, TRUE);
dbms_lob.fileopen(v_bfile, dbms_lob.file_readonly);
dbms_output.put_line(dbms_lob.getlength(v_bfile));
dbms_lob.loadblobfromfile(dest_lob => v_blob,
src_bfile => v_bfile,
amount => dbms_lob.getlength(v_bfile),
dest_offset => v_dest,
src_offset => v_lang);
UPDATE bfile_test SET detail = v_blob;
dbms_lob.fileclose(file_loc => v_bfile);
END;
其中, UPGRADE_DIR是一个directory对象。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8520577/viewspace-1650530/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8520577/viewspace-1650530/