Cómo recuperar una tabla en Oracle tras hacer un DROP TABLE

Hola Amig@s,

Si por error hemos hecho un drop table de una tabla en un esquema de base de datos Oracle y necesitamos recuperarla, podemos utilizar la papelera de reciclaje del usuario de base de datos. Existe una para cada tipo. Hay papelera para usuarios, para usuarios con privilegios DBA y para el sistema.

Ejemplo de recuperación:

Creamos la tabla:

CREATE TABLES SALES (SALESID NUMBER(4)
 STOREID NUMBER(4)
 ITEMID  NUMBER(4)
 QTY     NUMBER
 SLSDATE DATE
 PAYMENT VARCHAR2(30 CHAR));

Insertamos el registro:

SQL> insert into sales values (1,0,0,0,sysdate,'a');

1 fila creada.

SQL> commit;

Mostramos el resultado y contenido de la tabla:

SQL> set lines 1200
SQL> select * from sales;

   SALESID    STOREID     ITEMID        QTY SLSDATE  PAYMENT
---------- ---------- ---------- ---------- -------- ------------------------------
         1          0          0          0 21/11/19 a

Borramos la tabla:
SQL>drop table sales;
Tabla borrada.

Miramos los objetos eliminados en la papelera de reciclaje del usuario:
SQL> show recyclebin
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
SALES            BIN$QuPvgG8GSQm/XbkajvGnXQ==$0 TABLE        2019-11-21:13:17:29

Recuperamos la tabla SALES antes del drop:
SQL> flashback table sales to before drop;
Flashback terminado.

Mostramos el contenido de la tabla SALES:
SQL> select * from sales;

   SALESID    STOREID     ITEMID        QTY SLSDATE  PAYMENT
---------- ---------- ---------- ---------- -------- ------------------------------
         1          0          0          0 21/11/19 a

Et voila!

Hemos recuperado la tabla y su contenido.

Espero que les resulte útil.
salu2.



Share on Google Plus
    Blogger Comment

1 comentarios:

Unknown dijo...

Gracias por el aporte si me ayudó a recuperar la tabla que accidentalmente borre!