2016-06-21 5 views
0

私の要件は、電子メール通知を送信することです手順(オブジェクト)は、Oracleデータベース・スキーマ内に作成または変更された場合、私は電子メール通知を送信することはでき

+1

あなたはDDLトリガが必要になります - HTTPSを参照してください。//asktom.oracle.com/pls/asktom/f P = 100:11:0 :::? :p11_question_id:267415465220 – Boneist

+0

[Oracle:DDLトリガを使用してテーブル名変更イベントを記録する方法](http://stackoverflow.com/questions/32580702/oracle-how-to-log-table-rename-event-using- ddl-trigger) –

答えて

0

ますsend mail via Oracle にデータベース

  • PL/SQLファンクションの

    • AFTER ddl trigger:二つのことを必要とします
      create or replace TRIGGER AUDIT_DDL_TRIGGER AFTER ddl or ALTER OR RENAME ON schema 
      DECLARE 
      BEGIN 
          send_mail(p_to  => '[email protected]', 
            p_from  => '[email protected]', 
            p_subject => 'DDL!', 
            p_message => 'A DDL or ALTER or RENAME occurred.', 
            p_smtp_host => 'smtp.mycompany.com'); 
      END; 
      /
      

      Send_mail機能は次のとおりです。

      CREATE OR REPLACE PROCEDURE send_mail (p_to  IN VARCHAR2, 
                   p_from  IN VARCHAR2, 
                   p_message IN VARCHAR2, 
                   p_smtp_host IN VARCHAR2, 
                   p_smtp_port IN NUMBER DEFAULT 25) 
      AS 
          l_mail_conn UTL_SMTP.connection; 
      BEGIN 
          l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port); 
          UTL_SMTP.helo(l_mail_conn, p_smtp_host); 
          UTL_SMTP.mail(l_mail_conn, p_from); 
          UTL_SMTP.rcpt(l_mail_conn, p_to); 
          UTL_SMTP.data(l_mail_conn, p_message || UTL_TCP.crlf || UTL_TCP.crlf); 
          UTL_SMTP.quit(l_mail_conn); 
      END; 
      /
      
  • 関連する問題