sql >> Databasteknik >  >> RDS >> Oracle

Bästa sättet att få ett e-postmeddelande efter samtidig misslyckande (sql - trigger - applikation)

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.




  1. mysql auto inkrement fel

  2. Vilolägesfel:aktuell transaktion avbryts, kommandon ignoreras till slutet av transaktionsblocket

  3. Sortera filmer efter 2 saker

  4. Finns det nackdelar med att använda en generisk varchar(255) för alla textbaserade fält?