sql >> Database teknologi >  >> RDS >> Oracle

Bedste måde at modtage en e-mail efter samtidig mislykket (sql - trigger - applikation)

Du kan bruge double pipes(|| ) som sammenkædningsoperatorer, og filtrer resultaterne ud efter dine ønskede statustyper angivet i parentes efter IN operatør for forespørgslen.

Opret en procedure, og tag din forespørgsel ind i den som en markør, og brug >utl_http pakke inden for denne procedure som nedenfor:

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;

for at modtage e-mails som kalder denne procedure.




  1. Opdeling af strengen i sql server

  2. importere osm-fil til en postgres/postgis-database

  3. mysql indsæt hvis ikke eksisterer uden unik nøgle

  4. pivottabel Oracle - hvordan man ændrer rækkeelementer til kolonner