Oracle
 sql >> база данни >  >> RDS >> Oracle

Най-добрият начин за получаване на имейл след неуспешно едновременно изпълнение (sql - тригер - приложение)

Можете да използвате двойни тръби (|| ) като оператори за конкатенация и филтрирайте резултатите по желаните от вас типове състояния, изброени в скоби след IN оператор за заявката.

Създайте процедура и вземете вашата заявка в нея като курсор и използвайте utl_http пакет в рамките на тази процедура, както е показано по-долу:

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;

за да получавате имейли, като извиквате тази процедура.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Динамично изтриване в Oracle

  2. ASP.NET - ORA-04068:съществуващото състояние на пакетите е отхвърлено

  3. Преобразувайте SQL заявка, за да използвате оператори за набори

  4. Oracle SQL как да премахнете времето от датата

  5. PostgreSQL mysql оракул разлики