sql >> データベース >  >> RDS >> Oracle

同時失敗後に電子メールを受信するための最良の方法(sql-トリガー-アプリケーション)

    ダブルパイプを使用できます( || )連結演算子として、 INの後に括弧で囲まれた目的のステータスタイプで結果を除外します。 クエリの演算子。

    プロシージャを作成し、クエリをカーソルとしてそのプロシージャに取り込んで、<を使用します。 code> 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. 3回以上発生した行を選択する

    2. 順序付けられた結果セットから行の「実行」を見つける

    3. '、php、javascriptでの人の名前の一重引用符をどのように処理しますか

    4. 日時列を年、月、週に分割する