2016-12-11 93 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变量中。您可以在进一步的过程中使用此变量,例如将其附加到邮件。 –