sql >> Databáze >  >> RDS >> Oracle

Nejlepší způsob, jak obdržet e-mail po souběžném selhání (sql - trigger - application)

Můžete použít dvojité trubky (|| ) jako operátory zřetězení a filtrovat výsledky podle požadovaných typů stavu uvedených v závorkách za IN operátor pro dotaz.

Vytvořte proceduru a vezměte do ní svůj dotaz jako kurzor a použijte utl_http balíček v rámci tohoto postupu, jak je uvedeno níže:

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;

abyste mohli přijímat e-maily jako volání této procedury.




  1. Stretch Database v SQL Server 2016 RTM

  2. ORA-06502:PL/SQL:numerická nebo hodnotová chyba:vyrovnávací paměť řetězce znaků je příliš malá - Spouštění pomocí rozhraní OCI

  3. PostgreSQL dotaz WHERE datum je starší než 3 roky

  4. výběr odlišného pořadí hodnot podle popis