Trabalhar com sistemas distribuídos globalmente envolve lidar com diferentes fusos horários. No Oracle Database, o pacote DBMS_SCHEDULER fornece uma maneira eficaz de agendar trabalhos, levando em consideração o fuso horário. Este artigo discute como definir e alterar o fuso horário de um job no Oracle DBMS_SCHEDULER.

Definindo o fuso horário ao criar um job

Ao criar um job no Oracle DBMS_SCHEDULER, você pode especificar um fuso horário usando o parâmetro start_date, que aceita um valor TIMESTAMP WITH TIME ZONE. Se um fuso horário for especificado, o job será executado de acordo com esse fuso horário.

Por exemplo, o seguinte comando cria um jobque é executado todos os dias às 14:00 no fuso horário ‘America/Sao_Paulo’:

DBMS_SCHEDULER.CREATE_JOB(
    job_name        => 'meu_trabalho',
    job_type        => 'PLSQL_BLOCK',
    job_action      => 'BEGIN NULL; END;',
    start_date      => TIMESTAMP '2023-07-17 14:00:00 America/Sao_Paulo',
    repeat_interval => 'FREQ=DAILY;BYHOUR=14;',
    end_date        => NULL,
    enabled         => TRUE,
    comments        => 'Executa todos os dias às 14h.');

Alterando o fuso horário de um job existente

Para alterar o fuso horário de um job existente, você pode usar o procedimento DBMS_SCHEDULER.SET_ATTRIBUTE para alterar o atributo start_date do job. Primeiro, desabilite o job, modifique o atributo start_date com o novo fuso horário, e depois reabilite o job .

Veja como fazer isso:

-- Desabilita o job
DBMS_SCHEDULER.DISABLE(
    name   => 'meu_trabalho');

-- Altera o fuso horário do job
DBMS_SCHEDULER.SET_ATTRIBUTE(
    name      => 'meu_trabalho',
    attribute => 'start_date',
    value     => TIMESTAMP '2023-07-18 14:00:00 America/New_York');

-- Reabilita o job
DBMS_SCHEDULER.ENABLE(
    name   => 'meu_trabalho');

No exemplo acima, o job que foi originalmente definido para ser executado todos os dias às 14:00 no fuso horário ‘America/Sao_Paulo’ foi alterado para ser executado todos os dias às 14:00 no fuso horário ‘America/New_York’.

Importante: Esteja ciente de que a alteração do fuso horário desta maneira afetará a próxima execução do job . Portanto, se o job já tiver sido executado para o dia no antigo fuso horário, ele será executado novamente no novo fuso horário.

Sobre o autor

Pós graduado em Gestão de Projetos em Tecnologia da Informação pela UNIASSELVI.
Esposo e Pai, curto atividades ao ar livre (Bike, SUP, Natação, Caminhar, Brincar no campo)

Atua com Banco de Dados Oracle desde de 2007. Atualmente é DBA Senior na FLUIDATA Serviços em Banco de dados (www.fluidata.com.br)

Principais atividade Banco de dados:

Implementação, migração, gerenciamento e suporte a produtos Oracle (8i, 9i, 10g, 11g, 12c, 18c, 19c RAC), multiplataforma;
Implementação, migração, gerenciamento e suporte a produtos Microsoft SQL Server (2008 - 2019);
Implementação, migração, gerenciamento e suporte a produtos PostgreSQL (9.3 - 14);
Monitoramento de ambientes 24×7;
Backup e Recovery;
Performance e Tuning;
Alta disponibilidade (HA);
EM database/grid/cloud control;
Conversão de databases;
Standby database / Oracle Data Guard;

Certificações:

Oracle Cloud Infrastructure 2019 Certified Architect AssociateOracle Cloud Infrastructure 2019 Certified Architect Associate
Oracle Database 12c Administrator Certified ProfessionalOracle Database 12c Administrator Certified Professional
Exadata Database Machine Models X2-2 and X2-8 Technology Support SpecialistExadata Database Machine Models X2-2 and X2-8 Technology Support Specialist
Oracle Database 11g Support SpecialistOracle Database 11g Support Specialist
OCP 11g - Oracle Certified Professional AdministratorOCP 11g - Oracle Certified Professional Administrator
OPN Certified Specialist 10g - PartnerNetwork Certified SpecialistOPN Certified Specialist 10g - PartnerNetwork Certified Specialist
Oracle Database 10g Real Applications Clusters AdministratorCertified ExpertOracle Database 10g Real Applications Clusters AdministratorCertified Expert
Oracle Database 10g: Managing Oracle on Linux Certified ExpertOracle Database 10g: Managing Oracle on Linux Certified Expert
OCP 10g - Oracle Certified Professional AdministratorOCP 10g - Oracle Certified Professional Administrator

Principais atividades DEVOPS:

PHP
ASP.net
C#
Docker
Golang
C++
Delphi
Python
HTML5
JavaScript

Você também pode gostar: