Anda dapat menggunakan pipa ganda(||
) sebagai operator gabungan, dan filter hasilnya menurut jenis status yang Anda inginkan yang tercantum dalam tanda kurung setelah IN
operator untuk kueri.
Buat prosedur dan bawa kueri Anda ke dalamnya sebagai kursor dan gunakan utl_http
paket dalam prosedur itu seperti di bawah ini :
create or replace procedure pr_mail_me is
v_email varchar2(100) := '[email protected]';
v_rep varchar2(4000);
v_url varchar2(4000);
cursor crs_request is
select 'The concurrent '||program||' with request_id '||request_id||' ended with status '||
status as message, request_id
from
(
<the subquery>
)
where rn = 1
and status in ('WARNING','ERROR','STAND BY');
begin
for c in crs_request
loop
begin
v_url := 'http://www.mycompany.com/path_to/default.aspx?email=' ||
v_email ||'&out_message='||c.message||'&out_request_id='||c.request_id;
v_rep := utl_http.request(utl_url.escape(v_url,false,'UTF-8'));
exception
when others then
v_url := 'http://www.mycompany.com/path_to/default.aspx?email=' ||
v_email ||'&out_message='||substr(sqlerrm,1,250)||'&out_request_id='||c.request_id;
v_rep := utl_http.request(utl_url.escape(v_url,false,'UTF-8'));
end;
end loop;
end;
untuk menerima email sebagai panggilan prosedur ini.