Large Objects Oracle PLSQL 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> 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.