给你一个例子,希望能给你一点启发
CREATE OR REPLACE PROCEDURE Example_l2f IS 
  lobd       BLOB; 
  fils       BFILE   := BFILENAME('SOME_DIR_OBJ','some_file'); 
  amt        INTEGER := 4000; 
BEGIN 
  INSERT INTO lobd values(42,empty_blob());
  SELECT b_lob INTO lobd FROM lob_table WHERE key_value = 42 FOR UPDATE;
  dbms_lob.fileopen(fils, dbms_lob.file_readonly); 
  dbms_lob.loadfromfile(lobd, fils, amt); 
  COMMIT; 
  dbms_lob.fileclose(fils); 
END;

解决方案 »

  1.   

    我前几天也想过这个问题,如果你是在 9I下那可以,下面是个例子
    create or replace procedure insert_clob
    (p_id NUMBER, p_clob VARCHAR2) 
    AS 
    f_clob BFILE; 
    b_clob clob; 
    warning number;
    dest_offset number;
    src_offset number;
    lang_context number;Begin
    dest_offset:=1;
    src_offset:=1;
    lang_context:=0;
    -- Update the employee photo
    insert into clobdata values (p_id,empty_clob())
    RETURN content into b_clob;f_clob := bfilename('CLOB_SOURCE', p_clob);
     
    dbms_lob.fileopen(f_clob, dbms_lob.file_readonly);dbms_lob.loadclobfromfile(b_clob,f_clob, dbms_lob.getlength(f_clob),
       dest_offset,src_offset,0,lang_context,warning);
     
    dbms_lob.fileclose(f_clob);COMMIT;
    EXCEPTION
    -- Check for your error messages
    WHEN others THEN
    dbms_output.put_line('*** ERROR *** Check you procedure.');
    END;
    /但是在8I上我还没有成功导入过,因为没有LOADCLOBFROMFILE函数
    如果按照w_tsinghua()那样只把BLOB改为CLOB,导进去后变成乱码