2016-12-11 126 views

回答

1

試試這個來讀取文件系統中的文本文件:

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; 

後您文件讀入到CLOB,你可以將它傳遞給這個程序:How to send email using Oracle 10 g Forms

+0

這是否會附加文件或將本拿文件中的文本,然後你可以使用電子郵件中的文本?或者使用文本創建一個新文件?如何將文件附加到電子郵件發生? –

+0

先前提出這個問題:[使用UTL_SMTP plsql包發送郵件附件](http://stackoverflow.com/questions/41085446/sending-mail-attachment-using-utl-smtp-plsql-package)。該函數只是讀取一個文件並將內容複製到CLOB變量中。您可以在進一步的過程中使用此變量,例如將其附加到郵件。 –