GRANT DBA TO TEST;
grant create any directory to test;
grant create any library to test;
create table bfile_tab(bfile_column bfile);
create table blob_tab(blob_column blob);
create or replace directory UTLLOBDIR as '/home/oracle/test';
DECLARE
v_blob BLOB;
v_bfile BFILE := bfilename('UTLLOBDIR', 'test.doc');
BEGIN
INSERT INTO bfile_tab (bfile_column) VALUES (v_bfile) RETURNING bfile_column into v_bfile;
INSERT INTO blob_tab (blob_column) VALUES (empty_blob()) RETURNING blob_column INTO v_blob;
dbms_lob.fileopen(v_bfile);
dbms_lob.loadfromfile(DEST_LOB => v_blob,SRC_LOB => v_bfile,AMOUNT => dbms_lob.getlength(v_bfile));
dbms_lob.fileclose(v_bfile);
COMMIT;
END;
/