Sie können doppelte Pipes verwenden (||
) als Verkettungsoperatoren und filtern Sie die Ergebnisse nach Ihren gewünschten Statustypen heraus, die in Klammern hinter dem IN
aufgeführt sind Operator für die Abfrage.
Erstellen Sie eine Prozedur und nehmen Sie Ihre Abfrage als Cursor hinein und verwenden Sie utl_http
Paket innerhalb dieses Verfahrens wie folgt:
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;
um E-Mails zu erhalten, die dieses Verfahren aufrufen.