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

O que você achou disso?

Clique nas estrelas

Média da classificação / 5. Número de votos:

Nenhum voto até agora! Seja o primeiro a avaliar este post.

Lamentamos que este post não tenha sido útil para você!

Vamos melhorar este post!

Diga-nos, como podemos melhorar este post?

Deixe um comentário

plugins premium WordPress