Du kan använda double pipes(||
) som sammanlänkningsoperatorer och filtrera bort resultaten efter dina önskade statustyper inom parentes efter IN
operatör för frågan.
Skapa en procedur och ta din fråga in i den som en markör och använd code>utl_http paket inom den proceduren enligt nedan :
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;
för att ta emot e-postmeddelanden som anropar denna procedur.