# FLASHBACK QUERY - ¿Cómo recuperar datos sin esfuerzo en una base Oracle?

Con el Flashback Query se puede extraer el estado de una tabla en un cierto instante temporal anterior. Se puede usar, por ejemplo, para comparar las filas que una tabla tiene hoy con las que tenía ayer.

Si sos DBA, imaginate que una persona hizo un DELETE sin un filtro por equivocación, si esa persona te avisa rápido, vos serías capaz de recuperar los datos de una manera sencilla y rápida.

Para funcionar, esta característica sólo utiliza el tablespace de UNDO.

### **Vayamos a la práctica**

Supongamos que sabemos que se han borrado filas hace menos de una hora, entonces hacemos lo siguiente:

```sql
SELECT * FROM owner.tabla_ejemplo AS OF TIMESTAMP SYSTIMESTAMP - INTERVAL '60' MINUTE;
```

Dicha consulta nos traerá todas las filas que tenía la **tabla\_ejemplo** hace una hora.

También podríamos crear una **tabla\_soporte** que contenga todos los registros de la **tabla\_ejemplo** hace una hora de la siguiente manera:

```sql
CREATE TABLE owner.tabla_soporte AS
       SELECT * FROM owner.tabla_ejemplo AS OF TIMESTAMP SYSTIMESTAMP - INTERVAL '60' MINUTE;
```

Una desventaja de este último ejemplo es que no se crearán ni los índices, ni las constraints de la tabla original.

Hasta el próximo post 🙂

Saludos desde Buenos Aires, Argentina.
