【问题标题】:send a mail if count (*) >0 in oracle如果在 oracle 中计数 (*) >0,则发送邮件
【发布时间】:2016-03-24 18:33:45
【问题描述】:

我有

PROCEDURE p_get_empdetails(pcu_scheme_info OUT SYS_REFCURSOR)
IS  
BEGIN


    -- To Select scheme_ref,scheme_cat and quote_ref
    OPEN pcu_scheme_info FOR
        SELECT emp_ref
              ,emp_cat
              ,emp_quote_ref
        FROM emp_reset_id e
        WHERE estimated_quote_expiry_date <= lpcd_system_date
        AND q.quote_ref IN (SELECT DISTINCT qrc.quote_ref
                            FROM nb005 nb, 
                                 emp_reset_id e
                            WHERE nb.qteref = e.emp_quote_ref
                            AND nb.pcsstg <> 51);                
END p_get_scheme_details;

如果计数> 0,我需要发送电子邮件

SELECT COUNT(*) 
        FROM nb005 nb JOIN emp_reset_id e ON nb.qteref = qrc.emp_quote_ref
        WHERE nb.pcsstg=51;

请帮忙?

【问题讨论】:

    标签: oracle


    【解决方案1】:

    这个问题很模糊。我假设您使用的是 oracle 10g 及更高版本。如果您尝试通过 PL/SQL 发送邮件,您可以使用UTL_MAIL 包。你可以试试

    CREATE OR REPLACE PROCEDURE p_test_mail AS var_count NUMBER; CURSOR c1 IS SELECT COUNT(*) FROM nb005 nb JOIN emp_reset_id e ON nb.qteref = qrc.emp_quote_ref WHERE nb.pcsstg=51; BEGIN OPEN c1; LOOP FETCH c1 INTO var_count; EXIT WHEN c1%NOTFOUND; IF var_count > 0 THEN utl_mail.send(sender => 'sendermail@senderdomain.com', recipients => 'receivermail@receiverdomain.com', subject => 'Your Subject', MESSAGE => 'Your Message'); END IF; END LOOP; CLOSE c1; END;

    使用UTL_MAIL 包有一些先决条件。你可以找到这些细节here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 2018-07-01
      相关资源
      最近更新 更多