如果在oracle中count(*)> 0,则发送邮件

时间:2015-12-18 05:24:47

标签: oracle

我有

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;

如果计数是&gt;我需要发送电子邮件0

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

请帮帮忙吗?

1 个答案:

答案 0 :(得分:0)

问题很模糊。我假设您正在使用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