大侠能不能说得详细一点啊!

解决方案 »

  1.   

    给你一个别人以前贴过的:
    -- connect sample/...drop table docs;
    create table docs (
      id           number,
      title        varchar2(4000),
      bfile_text   bfile,
      blob_text    blob,
      text1        char(1),
      text2        char(1) );insert into docs ( id, title, bfile_text, blob_text ) values
      ( 1, 'a short essay', bfilename ( 'SAMPLE', 'Test.doc' ), empty_blob() );
    commit;-- Populate the BLOB column with an exact copy of the BFILE columndeclare
      v_length integer;
      v_bfile_text bfile;
      v_blob_text blob;
    begin
      select bfile_text, blob_text
        into v_bfile_text, v_blob_text
        from docs
        where id = 1
        for update;
      v_length := Dbms_Lob.GetLength ( v_bfile_text );  Dbms_Lob.Open ( file_loc => v_bfile_text );
      Dbms_Lob.LoadFromFile (
        dest_lob      => v_blob_text,
        src_lob       => v_bfile_text,
        amount        => v_length,
        dest_offset   => 1,
        src_offset    => 1 );
      Dbms_Lob.Close ( file_loc => v_bfile_text );  update docs set blob_text = v_blob_text
        where id = 1;
      commit;
    end;
    /select
      Dbms_Lob.GetLength ( bfile_text ) l_bfile,
      Dbms_Lob.GetLength ( blob_text )  l_blob
      from docs;-- both should be 19456 characters