Oracle 8i | Oracle 9i | Oracle 10g | Oracle 11g | Oracle 12c | Miscellaneous | PL/SQL | SQL | Oracle RAC | Oracle Apps | Linux

Import BLOB Contents

Related articles.

The following article presents a simple methods for importing a file into a BLOB datatype. First a directory object is created to point to the relevant filesystem directory.

CREATE OR REPLACE DIRECTORY images AS 'C:\';

Next we create a table to hold the BLOB.

CREATE TABLE tab1 (
  id        NUMBER,
  blob_data BLOB
);

We import the file into a BLOB datatype and insert it into the table.

DECLARE
  l_bfile  BFILE;
  l_blob   BLOB;
BEGIN
  INSERT INTO tab1 (id, blob_data)
  VALUES (1, empty_blob())
  RETURN blob_data INTO l_blob;

  l_bfile := BFILENAME('IMAGES', 'MyImage.gif');
  DBMS_LOB.fileopen(l_bfile, DBMS_LOB.file_readonly);
  DBMS_LOB.loadfromfile(l_blob, l_bfile, DBMS_LOB.getlength(l_bfile));
  DBMS_LOB.fileclose(l_bfile);

  COMMIT;
END;
/

To update an existing BLOB do the following.

DECLARE
  l_bfile  BFILE;
  l_blob   BLOB;
BEGIN
  SELECT blob_data
  INTO   l_blob
  FROM   tab1
  WHERE  id = 1
  FOR UPDATE;

  l_bfile := BFILENAME('IMAGES', 'MyImage.gif');
  DBMS_LOB.fileopen(l_bfile, DBMS_LOB.file_readonly);
  DBMS_LOB.loadfromfile(l_blob, l_bfile, DBMS_LOB.getlength(l_bfile));
  DBMS_LOB.fileclose(l_bfile);
END;
/

For more information see:

Hope this helps. Regards Tim...

Back to the Top.