Tente este para ler um arquivo de texto do sistema de arquivos:
FUNCTION GetFile(FolderName IN VARCHAR2, FileName IN VARCHAR2) RETURN CLOB IS
v_bfile BFILE;
v_clob CLOB;
destOffset INTEGER := 1;
srcOffset INTEGER := 1;
lang_context INTEGER := DBMS_LOB.default_lang_ctx;
warning INTEGER;
BEGIN
v_bfile := BFILENAME (FolderName, FileName);
DBMS_LOB.OPEN (v_bfile);
DBMS_LOB.CREATETEMPORARY(v_clob, TRUE, DBMS_LOB.SESSION);
DBMS_LOB.LOADCLOBFROMFILE(
dest_lob => v_clob,
src_bfile => v_bfile,
amount => DBMS_LOB.GETLENGTH(v_bfile),
dest_offset => destOffset,
src_offset => srcOffset,
bfile_csid => DBMS_LOB.default_csid,
lang_context => lang_context,
warning => warning);
DBMS_LOB.CLOSE(v_bfile);
RETURN v_clob;
END GetFile;
Depois de ler o arquivo no CLOB, você pode passá-lo para este procedimento:Como enviar e-mail usando Oracle 10g Forms