Postagens

Mostrando postagens de Março, 2008

Pegar o momento de uma inserção através do SCN

Olá pessoal,
me deparei estes dias com uma situação interessante. Um colega precisava descobrir o momento exato em que houve uma determinada inserção de um registro em uma tabela de movimentos de estoque de um cliente, mas o único campo de data da tabela guardava apenas dia/mês/ano, sem a hora.
O Oracle não trabalha com datas diretamente em seus controles, pois a data do sistema operacional pode ser alterada e comprometer a sua consistência. Desta forma ele utiliza um número sequencial conhecido como SCN. Aí imaginei que houvésse uma forma de converter este SCN para um horário válido e fiz a seguinte pesquisa no banco, como usuário sys:

select object_name
from all_objects
where upper(object_name) like '%SCN%'

Esta consulta me retornou vários resultados, dentre eles o que chamou a atenção foi o SCN_TO_TIMESTAMP. Pesquisei no Google e verifiquei o uso desta função com a pseudo-coluna ORA_ROWSCN que armazena o SCN corrente no momento da inclusão do novo registro. Com isso utilizei o s…