Visits

3683 (since Aug 23, 2008)

Personal

Loading File into a Blob

 

 

Yesterday I received a request from a developer to load file into a BLOB. To be honest I have never loaded a file into a BLOB in past. I had some idea that I would have to use DBMS_LOB pl/sql package to achieve this.

 

Here are the steps to do this.

 

1.     Create an oracle directory object.

 

 

create directory tmp as ‘/tmp’;

 

 

2.     Load the file into BLOB

 

 <pre class=”brush: c-sharp;”> 

 

 

DECLARE

    l_blob  BLOB;

    l_bfile BFILE;

    l_offset_dest INTEGER :=1;

    l_offset_src INTEGER :=1;

BEGIN

    /* Get a BFILE pointer to OS file. */

    SELECT bfilename (‘TMP’,'CLIENT_CUST_BLEUPRINT.xml’)

      INTO l_bfile

      FROM dual;

 

    /* Open the BFILE */  

    DBMS_LOB.FILEOPEN(l_bfile);

 

    /* Initialize the BLOB */  

    DBMS_LOB.CREATETEMPORARY(l_blob,TRUE);

 

    DBMS_LOB.LOADBLOBFROMFILE(dest_lob => l_blob

                             ,src_bfile => l_bfile

                             ,amount => DBMS_LOB.LOBMAXSIZE

                             ,dest_offset => l_offset_dest

                             ,src_offset => l_offset_src

                             );

    update table1

       set col1 = l_blob;

    commit;

 

    /* Close the BFILE */  

   dbms_lob.FILECLOSE(l_bfile);

 

end;

/

 </pre>

4 comments to Loading File into a Blob

  • Gus Spier

    What is the ddl for table1? Is this a table with a single column of type BLOB?

  • Naeeym

    How do I put the FILE in the TMP directory of the Server from a Client?? As I don’t want the Client to have any direct share to Server Directory..

    I don’t want to user to Upload the file to the server from their client machine, and ask somebody else to load it from there.

    I want the user to insert directly into the BLOB….

    Is there any way to use this Procedure from the Client??

    I tried, but it seems Oracle does not support client call to DBMS_LOB.

  • Gus,

    table1 is just an example. It can be any table with a BLOB column. Lets say it has following definition.

    CREATE TABLE table1
    (COL1 BLOB);

  • Nayeem,

    Example above was more directed towards DBAs. And dba would normally have access to server. Its using oracle directory object which is a directory on server.

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>