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.
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
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


Post popolari in questo blog

Create e Drop Pluggable Database

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione