grant create any directory to scott;
grant create any library to scott;
create or replace directory utllobdir as 'G:\oracle';
create table bfile_tab (bfile_column BFILE);
create table utl_lob_test (blob_column BLOB);set serveroutput on然后执行下面语句就将G:\oracle目录下的Azul.jpg存入到utl_lob_test 
表中的blob_column字段中了。
declare
   a_blob  BLOB;
   a_bfile BFILE := BFILENAME('UTLLOBDIR','Azul.jpg'); 
begin
   insert into bfile_tab values (a_bfile)
     returning bfile_column into a_bfile;
   insert into utl_lob_test values (empty_blob())
     returning blob_column into a_blob;
   dbms_lob.fileopen(a_bfile);
   dbms_lob.loadfromfile(a_blob, a_bfile, dbms_lob.getlength(a_bfile));
   dbms_lob.fileclose(a_bfile);
   commit;
end;
/
select dbms_lob.getlength(blob_column) from UTL_LOB_TEST;

解决方案 »

  1.   

    还是用LOB好一点吧,存路径虽然也是一种实现方式,不过不太利于维护。
      

  2.   

    看的不是很懂
    returning bfile_column into a_bfile
    能解释下吗,谢谢
      

  3.   

    例子太多了
    http://expert.csdn.net/Expert/topic/1635/1635647.xml?temp=.4393732
      

  4.   

    看oracle安装目录下有一个oo4o目录,找例子去吧,太多了