Bạn có thể sử dụng đường ống đôi (||
) dưới dạng toán tử nối và lọc kết quả theo loại trạng thái mong muốn của bạn được liệt kê trong dấu ngoặc đơn sau IN
toán tử cho truy vấn.
Tạo một thủ tục và đưa truy vấn của bạn vào đó dưới dạng con trỏ và sử dụng utl_http
gói trong quy trình đó như sau:
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;
để nhận e-mail khi gọi thủ tục này.