FLASHBACK VERSIONS QUERY
Le operazioni Flashback Versions Query utilizzano gli Undo data per poter visualizzare i valori restituiti da una query in un intervallo di tempo definito dal valore SCN o timestamp.
Esso restituisce solo dati che hanno subito una commit, pertanto i valori vecchi vengono mantenuti per un tempo determinato da parametro undo retention.
Inoltre è una operazione che può usare un qualsiasi user con i privilegi di flashback e select.
Esso restituisce solo dati che hanno subito una commit, pertanto i valori vecchi vengono mantenuti per un tempo determinato da parametro undo retention.
Inoltre è una operazione che può usare un qualsiasi user con i privilegi di flashback e select.
Non è necessario abilitare la modalità flashback database.
Viene utilizzato per
- recuperare dati committati per errore
- confrontare valori attuali con quelli passati
- correggere errori utente
E s e m p i o
Viene utilizzato per
- recuperare dati committati per errore
- confrontare valori attuali con quelli passati
- correggere errori utente
E s e m p i o
Sessione#1
select DEPARTMENT_NAME from EMP_1 where DEPARTMENT_ID = 100;
Supponiamo di eseguire le seguenti dml.
update EMP_1 set DEPARTMENT_NAME ='Accounting' where DEPARTMENT_ID = 100;
commit;
update EMP_1 set DEPARTMENT_NAME ='Shipping' where DEPARTMENT_ID = 100;
commit;
update EMP_1 set DEPARTMENT_NAME ='Sales' where DEPARTMENT_ID = 100;
commit;
SELECT versions_starttime, versions_endtime , department_name
FROM emp_1
VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE
where DEPARTMENT_ID = 100
order by 1 nulls first;
L'ultima riga corrisponde con "endtime" a null corrisponde al valore attuale della colonna department_name per id=10.
SELECT department_name , versions_startSCN, versions_endSCN
FROM emp_1
VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE
where DEPARTMENT_ID = 100;
La prima riga con "endscn" a null, corrisponde al valore attuale della colonna department_name per id=10.
Vediamo le pseducolonne
versions_starttime indica il tempo della prima versione delle righe restituita dalla query
versions_endtime indica il tempo della ultima versione delle righe restituita dalla query
versions_startSCN indica l'SCN della prima versione delle righe restituita dalla query
versions_endSCN indica l'SCN della ultima versione delle righe restituita dalla query
versions_xid indica l'id della transazione che ha effettuato l'operazione
versions_operation assume il valore I=insert, U=update, D=delete