Ciao,
la funzione di cui parli è la FLASHBACK QUERY. Per poterla utilizzare, è obbligatorio che la tua istanza di database sia configurata in ARCHIVELOG.
Per quanto riguarda la retention, ti posto dei link qui sotto in modo che tu possa caprire meglio come fare.
https://docs.oracle.com/cd/B28359_01/appdev.111/b28424/adfns_flashback.htm#BJFDJCJD
https://docs.oracle.com/cd/B12037_01/appdev.101/b10795/adfns_fl.htm#1015415
Puoi riportare indietro un singolo record o una tabella intera. Ti inserisco qualche esempio:
SELECT * FROM table AS OF TIMESTAMP
TO_TIMESTAMP(date, 'YYYY-MM-DD HH:MI:SS')
; // visualizzi il singolo record che vuuoi portare indietro
SELECT * FROM nome_tabella AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '60' MINUTE) // ad intervallo di minuti
INSERT INTO table
(SELECT * FROM tableAS OF TIMESTAMP
TO_TIMESTAMP('2005-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS')
WHERE ); // così reinserisci il record nella tabella
Ciao