Utilizando a expressão INTERVAL com o Flashback Query

Bom Dia!!

Vamos falar um pouco do recurso de Flashback query, o qual permite visualizar dados que fora deletados em um certo intervalo.

Podemos ultilizar a expressão INTERVAL ao utilizar a cláusula as of timestamp para definir o intervalo de tempo que será recuperado.

EX abaixo

SQL> set time on
09:23:14 SQL> create table D1 (id number);

Tabela criada.

09:23:33 SQL> insert into D1 values (1);

1 linha criada.

09:23:40 SQL> insert into D1 values (2);

1 linha criada.

09:23:42 SQL> insert into d1 values (3);

1 linha criada.

09:23:44 SQL> commit;

Validação completa.

09:23:47 SQL> update d1 set id=id*10;

3 linhas atualizadas.

09:27:17 SQL> commit;

Validação completa.

09:27:23 SQL> update d1 set id=id*20;

3 linhas atualizadas.

09:32:21 SQL> commit;

Validação completa.

-- Visão dos dados atuais armazenados na tabela d1
09:32:26 SQL> select * from d1 order by id;

ID
----------
200
400
600

-- Visão dos dados armazenados na tabela d1 há 5 minutos atrás
09:32:43 SQL> select * from d1
2 as of timestamp (systimestamp - interval '5' minute) order by id;

ID
----------
10
20
30

-- Visão dos dados armazendados na tabela d1 há 7 minutos atrás
09:33:44 SQL> select * from d1
2 as of timestamp (systimestamp - interval '7' minute) order by id;

ID
----------
1
2
3

Em resumo, podemos obter informações de dados de flashbask desejados entre intervalos de tempo utilizando a expressão INTERVAL:

SQL> select interval '1' year from dual;

INTERVAL'1'YEAR
----------------------------------------
+01-00

SQL> select interval '1' month from dual;

INTERVAL'1'MONTH
----------------------------------------
+00-01

SQL> select interval '1' day from dual;

INTERVAL'1'DAY
----------------------------------------
+01 00:00:00

SQL> select interval '1' hour from dual;

INTERVAL'1'HOUR
----------------------------------------
+00 01:00:00

SQL> select interval '1' minute from dual;

INTERVAL'1'MINUTE
----------------------------------------
+00 00:01:00

SQL> select interval '1' second from dual;

INTERVAL'1'SECOND
----------------------------------------
+00 00:00:01.000000

Funcões bastante úteis para recuperar linhas deletadas por usuários ..

Abraços

Danilo Carvalho

Mais nesta categoria: Reduzindo o UNDO Tablespace »

Projetos Específicos? Nossa equipe está pronta pra atender com as melhores técnicas do mercado