/*create or replace directory JACK
as 'D:jack';
*/
DECLARE
b_file BFILE;
b_lob BLOB;
BEGIN
INSERT INTO a
(a)
VALUES
(empty_blob()) RETURN a INTO b_lob;
--为了使PL/SQL编译成功,必须先为该列插入一个empty_blob() 值,return a into b_lob将该列与一个blog类型的变量绑定在一起,以后只要为b_lob赋值,即等于将该值插入了表中。
b_file := bfilename('JACK',
'a.bmp');
--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;
------------------------------
DECLARE
b_file BFILE;
b_lob BLOB;
BEGIN
SELECT a
INTO b_lob
FROM a
FOR UPDATE;
b_file := bfilename('JACK',
'b.bmp');
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中
UPDATE a
SET a = b_lob;
dbms_lob.CLOSE(b_file);
COMMIT;
END;[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/59792/viewspace-1049028/
,如需转载,请注明出处,否则将追究法律责任。