Populating BFILE : BFILE « Large Objects « Oracle PL/SQL Tutorial






Oracle accesses files on the server by using a directory.

A directory is just a pointer to an operating system folder.

Assuming that a folder C:\IO exists on your server, and you want to call that folder IO within Oracle:

create directory IO as 'C:\IO';

grant read, write on directory IO to public;

Now, when you refer to IO in any commands, you're referring to the C:\IO folder in the file system.

To create a pointer to the file on the server and place that pointer in the table on an existing record

SQL> --1: Creating a Pointer
SQL>
SQL> create table catalog
  2  (id number,
  3   name VARCHAR2(2000),
  4   manual_cl CLOB,
  5   firstpage_bl BLOB,
  6   mastertxt_bf BFILE
  7   );

Table created.

SQL>
SQL> create directory IO as 'C:\IO';

Directory created.

SQL> --grant read, write on directory IO to public;
SQL>
SQL>
SQL> declare
  2      v_bf BFILE;
  3  begin
  4      v_bf:=BFILENAME ('IO', 'text.htm');
  5      insert into catalog(id, name, mastertxt_bf) values (1, 'TEXT.HTM', v_bf);
  6  end;
  7  /

PL/SQL procedure successfully completed.

SQL>
SQL> drop table catalog;

Table dropped.








34.2.BFILE
34.2.1.Creating Tables Containing BFILE Objects
34.2.2.Populating a BFILE Column with a Pointer to a File
34.2.3.Populating BFILE
34.2.4.BFILE type column
34.2.5.BFILE value and BFILENAME function
34.2.6.BFILE column and directory
34.2.7.Create a BFILE locator
34.2.8.Retrieve the LOB locater
34.2.9.Use a BFILE to load a LOB column