sql >> Databáze >  >> RDS >> Oracle

Vrácení potvrzené transakce

Nemůžete vrátit zpět to, co již bylo spácháno. Co můžete v této konkrétní situaci udělat jako jednu z nejrychlejších možností, je zadat flashback dotaz na tabulku, ze které jste odstranili řádky (řádky), a vložit je zpět. Zde je jednoduchý příklad:

Poznámka :Úspěch této operace závisí na hodnotě (výchozí 900 sekund) undo_retention parametr - časový úsek (lze jej zkrátit automaticky), během kterého jsou v tabulkovém prostoru zpět uchovávány informace o vrácení.

/* our test table */
create table test_tb(
   col number
);
/* populate test table with some sample data */
insert into test_tb(col)
   select level
     from dual
  connect by level <= 2;

select * from test_tb;

COL
----------
         1
         2
/* delete everything from the test table */    
delete from test_tb;

select * from test_tb;

no rows selected

Vložit smazané řádky zpět:

/* flashback query to see contents of the test table 
  as of specific point in time in the past */ 
select *                                   /* specify past time */
  from test_tb as of timestamp timestamp '2013-11-08 10:54:00'

COL
----------
         1
         2
/* insert deleted rows */
insert into test_tb
   select *                                 /* specify past time */  
    from test_tb as of timestamp timestamp '2013-11-08 10:54:00'
   minus
   select *
     from test_tb


 select *
   from test_tb;

  COL
  ----------
          1
          2


  1. Jak vyřešit chybějící výraz ORA-00936

  2. Získejte počet neúspěšných pokusů o přihlášení kvůli nesprávnému heslu na SQL Server (T-SQL)

  3. Děkujeme, Amazon, že jste nás inspirovali k poskytování lepšího DBaaS:SkySQL

  4. Doplnění chybějících termínů podle skupin