Pular para o conteúdo

Como usar o parâmetro FIXED_DATE do Oracle para congelar o tempo do sysdate

Definindo uma data fixa para o Sysdate no Oracle

Olá Pessoal, estava eu dando uma espionada no tópico de parametros do banco de dados na documentação da Oracle e encontrei algo muito interessante e nem tanto difundido entre os profissionais da área. O parametro FIXED_DATE. Este parametro é utilizado para “congelar” o tempo do sysdate. Isso mesmo! Podemos definir um valor constante para o sysdate, utilizando qualquer data, pode ser um período anterior ou futuro, algo muito útil para efetuar testes.

Vejamos como funciona.

Exemplos

Exibição da data atual, antes da modificação do parametro:

SQL> select to_char(sysdate,'dd/mm/rrrr hh24:mi:ss') data from dual;

DATA
-------------------
21/09/2013 15:16:20

Comando para congelar a data:

alter system set fixed_date= '2013-08-21 01:00:00';

Exibição da data congelada, após a modificação do parâmetro:

SQL> select to_char(sysdate,'dd/mm/rrrr hh24:mi:ss') data from dual;

DATA
-------------------
21/08/2013 01:00:00

Comando para voltar o sysdate para o seu comportamento normal:

alter system set fixed_date=none;

Exibição da data atual normalmente:

SQL> select to_char(sysdate,'dd/mm/rrrr hh24:mi:ss') data from dual;

DATA
-------------------
21/09/2013 15:20:12

Veja que o escopo do parametro é de nível de sistema, ou seja, quando efetuada a alteração, todo o ambiente será afetado.

Conclusão

É realmente muito interessante o funcionamento desse parâmetro, pode ser muito útil para realização de testes, mas seu uso indiscriminado em um ambiente de produção por exemplo, pode causar muitos problemas. Portanto, tome muito cuidado ao alterá-lo.

Referências

Leonardo Litz

Leonardo Litz

É formado em Análise de Sistemas pela Uniban. Possui 9 anos de experiência em análise, implementação e desenvolvimento de softwares com Oracle Forms/Reports, PL/SQL. Também possui experiência de 5 anos em WebTool Kit, HTML, JavaScript, XML, CSS e APEX, além de conhecimentos em JAVA e Delphi. Possui certificação Oracle Advanced PL/SQL Developer Certified Professional 11g. Em sua experiência profissional teve a oportunidade de participar de diversos projetos, dos quais pode-se destacar migrações de sistemas de arquivos indexados em Cobol para banco de dados Oracle; tunning em camada de aplicações e camada de banco de dados; administração de banco de dados Oracle 9i e 10g; modelagem relacional de dados utilizando Erwin; migração do Forms 6i para Forms IAS 10g; levantamento, análise e desenvolvimento de software em Delphi com Oracle, Oracle WebTool Kit e APEX 4.0.1. Atualmente trabalha em uma empresa petroquimica, na qual atua como Desenvolvedor Oracle EBS (OA 11.5.10), desenvolvendo customizações para todos os módulos, nos padrões e recursos do ERP, utilizando PL/Sql, Forms 6i, Reports 6i, Discover, WorkFlow e APEX.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress