【问题标题】:How do I attach file from directory to email sent with utl_smtp如何将文件从目录附加到使用 utl_smtp 发送的电子邮件
【发布时间】:2016-12-12 17:30:15
【问题描述】:

有人可以分享要遵循的步骤列表或示例代码,以附加来自utl file directory 的简单csvXls 文件,并使用utl smtp 包通过电子邮件发送。

【问题讨论】:

    标签: oracle plsql


    【解决方案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

    【讨论】:

    • 此附件是否会从文件中获取文本,然后您可以在电子邮件中使用该文本?还是使用文本创建一个新文件?将文件附加到电子邮件的情况如何?
    • 之前问过这个问题:sending mail attachment using UTL_SMTP plsql package。这个函数只是读取一个文件并将内容复制到 CLOB 变量中。您可以在进一步的过程中使用此变量,例如将其附加到邮件中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 2011-08-14
    • 2020-06-27
    • 2018-06-22
    • 1970-01-01
    • 2016-09-20
    相关资源
    最近更新 更多