1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
DECLARE
g_last_mail mob_dcl_subs_emails.subs_email_address%TYPE;
----------------------
--All el. customer
----------------------
CURSOR cur_cust
IS
SELECT DISTINCT (cu.customer_id)
FROM customer cu, info_cust inf
WHERE inf.customer_id = cu.customer_id AND inf.combo = 'blabla';
----------------------
--All contracts
----------------------
CURSOR cur_all_contr (
c_customer_id customer.customer_id%TYPE)
IS
SELECT DISTINCT ca.co_id, ca.value_x
FROM contract ca, co_status costa
WHERE ca.customer_id = c_customer_id
AND costa.co_id = ca.co_id
AND costa.status = 'a';
----------------------
--Get last email
----------------------
PROCEDURE get_last_mail (v_custid IN customer.customer_id%TYPE,
v_email OUT emails.email%TYPE)
IS
p_val_x NUMBER;
BEGIN
SELECT email
INTO v_email
FROM emails e
WHERE e.val_x IN (cur_all_contr(v_custid).value_x)
AND ROWNUM = 1
ORDER BY e.date DESC;
END get_last_mail;
----------------------
--Main process
----------------------
BEGIN
FOR row_cust IN cur_cust
LOOP
get_last_mail (row_cust.customer_id, g_last_mail);
END LOOP;
END; |
Partager