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

Quão útil foi este post ?

Clique em uma estrela para classificar o post

nota média 4.4 / 5. Contagem de votos: 28

Sem votos ! Seja o primeiro a classificar !

Marcações:

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