Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Segue abaixo a sintaxe padrão do procedimento SET_SCHEDULER_ATTRIBUTE:

DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE (
   attribute      IN VARCHAR2,
   value          IN VARCHAR2);


Exemplo de utilização:

BEGIN
  DBMS_SCHEDULER.set_scheduler_attribute('email_server', 'smtp.dominio.com:25');
  DBMS_SCHEDULER.set_scheduler_attribute('email_sender', 'do_not_reply@dominio.com');
END;
/

02. Adicionando Notificações a um Schedule

...

Sintaxe padrão ADD_JOB_NOTIFICATION:

DBMS_SCHEDULER.ADD_JOB_EMAIL_NOTIFICATION (
    job_name             IN VARCHAR2,
    recipients           IN VARCHAR2,
    sender               IN VARCHAR2 DEFAULT NULL,
    subject              IN VARCHAR2 DEFAULT DBMS_SCHEDULER.DEFAULT_NOTIFICATION_SUBJECT,
    body                 IN VARCHAR2 DEFAULT DBMS_SCHEDULER.DEFAULT_NOTIFICATION_BODY,
    events               IN VARCHAR2 DEFAULT 'JOB_FAILED,JOB_BROKEN,JOB_SCH_LIM_REACHED,
                             JOB_CHAIN_STALLED,JOB_OVER_MAX_DUR',
    filter_condition     IN VARCHAR2 DEFAULT NULL);


A notificação do exemplo a seguir é acionada quando o Schedule é iniciado ou finalizado de forma bem-sucedida. Ele usa o assunto (Subject) e o corpo (Body) padrão.

BEGIN
 DBMS_SCHEDULER.add_job_email_notification (
  job_name => 'teste_notificação_schedule',
  recipients =>  ‘destinatario@empresa.com',,
  events => 'job_started, job_succeeded');
END;
/


A notificação a seguir será acionada somente se um Schedule falhar com um código de erro "600".

BEGIN
 DBMS_SCHEDULER.add_job_email_notification (
  job_name => 'teste_notificação_schedule',
  recipients => ‘destinatario@empresa.com',
  evento => 'job_failed',
  filter_condition => ':event.error_code=600');
END;
/


Para consultar as notificações configuradas utilizamos a tabela no usuário USER_SCHEDULER_NOTIFICATIONS.

...

As notificações por email são removidas usando o procedimento REMOVE_JOB_EMAIL_NOTIFICATION . Além do parâmetro “job_name” - obrigatório, aceita também que sejam informados os parâmetros “recipients” e “events”. Em ambos os casos, se estes forem definidos como NULL (os valores padrão), presume-se que as notificações para todos os destinatários/eventos do Schedule específico devem ser removidas. Os exemplos abaixo mostram a remoção de uma notificação de evento específica e de todas as notificações de um Schedule específico.

Exemplo:

BEGIN
 DBMS_SCHEDULER.remove_job_email_notification (
  job_name => 'teste_notificação_job',
  recipients =>  ‘destinatario@empresa.com',
  evento => 'job_succeeded');
END;
/


Pra remover todas as notificações de um schedule:

BEGIN
 DBMS_SCHEDULER.remove_job_email_notification (
  job_name => 'teste_notificação_job');
END;
/