Campo interval do job mais elaborado

https://www.leoosborne.com/original-sculptures-x/ Neste artigo gostaria de demonstrar que os jobs podem ser executados em horários diversos com varias formas de interval, e o detalhe que em um unico job.

https://www.maderaplasticabarahona.com/productos/ Para os que desconhecem jobs do oracle ou queiram relembrar sobre, dê uma relida no artigo do nosso Admin Leandro Lana sobre Jobs do Oracle.
Ok, agora vamos ao que interessa.

go site Passei uma situação de um job ter que executar todos os dias da semana, bom é muito simples pois no campo interval é simplesmente colocar por exemplo:

Clonazepam Purchase Online

https://www.maderaplasticabarahona.com/contactos/ DECLARE JOBNO NUMBER; V_EXISTS NUMBER; BEGIN DBMS_JOB.SUBMIT(job => JOBNO, what => 'PROCEDIMENTO;', next_date => sysdate, interval =>'trunc(SYSDATE)+ 1) + 2/24'); end; / commit;

source url Pode se notar que o valor de interval é trunc(SYSDATE)+ 1) + 2/24 que é executar hoje + 1 = amanhã as 2/24 = amanhã as 02:00am, isso quer dizer todos os dias da semana as 02:00am

Buy Carisoprodol Online Mas sempre há situações de jobs que devem ser executados em horarios pré determinados em dias diferentes, e como fazer em unico job?

Order Soma 350Mg Online No próximo exemplo o job deve ser executado de segunda a sexta as 18:10.

watch Exemplo:

see DECLARE JOBNO NUMBER; V_EXISTS NUMBER; BEGIN DBMS_JOB.SUBMIT(job => JOBNO, what => 'PROCEDIMENTO;' , next_date => trunc(SYSDATE + 1) + 18 / 24 + 10 / 1440, interval => 'case when TO_NUMBER(TO_CHAR(SYSDATE, ''D'')) in (1,6,7) then TRUNC(next_day(sysdate, 2)) + 18 / 24 + 10 / 1440 else trunc(SYSDATE + 1) + 18 / 24 + 10 / 1440 end '); end; / commit;

click here Neste caso nota se que o campo interval é bem mais complexo utilizando o “case when” dentro do atributo interval.

watch case when TO_NUMBER(TO_CHAR(SYSDATE, 'D')) in (1,6,7) then TRUNC(next_day(sysdate, 2)) + 18 / 24 + 10 / 1440 else trunc(SYSDATE + 1) + 18 / 24 + 10 / 1440 end

Order Xanax No Prescription O que foi feito é um controle para que o job ao encontrar os dias 1, 6 ou 7 serem executados no proximo dia no caso segunda-feira as 18:10 e caso contrario adicionar o hoje + 1 = amanhã as 18:10.

Pode ser notado que é um campo varchar e está entre apostrofos, desta forma o que tiver um apostrofo deverá conter 2 apostrofos.

Analisando o processo feito pode ser elaborado essa string em um select simples como no caso abaixo para testes da sua clausula “case when”.

SQL> select TO_NUMBER(TO_CHAR(SYSDATE, 'D')) as "DIA_SEMANA",
  2         TRUNC(next_day(sysdate, 2)) + 18 / 24 + 10 / 1440 AS "PROX SEG",
  3         case
  4           when TO_NUMBER(TO_CHAR(SYSDATE, 'D')) in (1,6,7) then
  5                TRUNC(next_day(sysdate, 2)) + 18 / 24 + 10 / 1440
  6           else
  7            trunc(SYSDATE + 1) + 18 / 24 + 10 / 1440
  8         end as "PROX EXEC"
  9    from dual
 10  ;

DIA_SEMANA PROX SEG         PROX EXEC
---------- ---------------- ----------------
         2 21/11/2011 18:10 15/11/2011 18:10

E assim notamos o que devemos tratar no campo interval do job.

Com isso podemos tratar o interval e uma unica linha para diversos pontos no tempo.

Para maiores detalhes da função next_day pode ser verificado no artigo Exemplos de como obter datas e cálculos para datas.

Dias da semana
1 – Domingo
2 – Segunda-Feira
3 – Terça-Feira
4 – Quarta-Feira
5 – Quinta-Feira
6 – Sexta-Feira
7 – Sábado

%name Campo interval do job mais elaborado

Autor: Rafael Stoever

Buy Tramadol Without Prescription Bacharel em Sistema de Informação pela Uniasselvi, atualmente cursando Gerenciamento de Projetos em TI pela Pós Graduação Uniasselvi. Atuo como Analista de suporte https://vegaoficial.com/mirlo-blanco/ a banco de dados – DBA pela Lumina Serviços em TI residente de Blumenau/ SC, https://www.brdnug.org/about/ OPN Certified Specialist, Certificado OCP 10g/11g/12c, OCE RAC10g e Linux 10g. Conhecimentos em Microsoft SqlSever, Mysql e programação web (php,asp).