ops$tkyte@8i> create table demo
  2  ( id        int primary key,
  3    theClob    clob
  4  )
  5  /
Table created.ops$tkyte@8i> create or replace directory
  2  MY_FILES as '/export/home/tkyte/public_html';
Directory created.ops$tkyte@8i> create or replace
  2  procedure load_a_file( p_id in number,
  3                         p_filename in varchar2 )
  4  as
  5      l_clob    clob;
  6      l_bfile    bfile;
  7  begin
  8      insert into demo values ( p_id, empty_clob() )
  9      returning theClob into l_clob;
 10      l_bfile := bfilename( 'MY_FILES', p_filename );
 11      dbms_lob.fileopen( l_bfile );
 12      dbms_lob.loadfromfile( l_clob, l_bfile,
 13                             dbms_lob.getlength( l_bfile ) );
 14      dbms_lob.fileclose( l_bfile );
 15  end;
 16  /Procedure created.ops$tkyte@8i> exec load_a_file( 1, 'index.html' );
PL/SQL procedure successfully completed.
用存储过程,给你参考一下