2007-02-12

Flashback Query

Hoje alguém me veio perguntar sobre a hipótese de recupar uns dados que tinha apagado recentemente.


Na Oracle 9i já era possível fazer uma query com dados existentes no passado.
A expressão a usar seria:

SELECT <coluns>
FROM <tabela>
AS OF TIMESTAMP
TO_TIMESTAMP(<string com a data> , <formato da data> )
WHERE <condição>


Apartir daqui podemos construir uma tabela com esses dados ou actualizar a existente de modo a recuperarmos a informação.

O tempo para o qual ainda se consegue fazer isto depende do movimento da BD (linhas actualizadas, apagadas, inseridas) pois depende do tamanho dos segmentos de UNDO ( e pelo parametro inicializador da BD UNDO_RETENTION).

Na 10g existem mais possibilidades como o undo de toda a DB.

No comments:

Post a Comment

Os comentários são moderados.
The comments are moderated.