Vediamo com’è possibile conoscere la cronologia di tutti gli aggiornamenti nelle tabelle di un database Oracle
Sia chiaro che la query che segue non permette di sapere quali sono le righe aggiunte, cancellate o modificate. In Oracle dopo ogni commit o rollback, tutte le modifiche vengono sovrascritte e i vecchi dati vengono persi.
SELECT TABLE_OWNER,
TABLE_NAME,
INSERTS,
UPDATES,
DELETES,
TIMESTAMP
FROM ALL_TAB_MODIFICATIONS
WHERE TABLE_NAME NOT LIKE '%$%'
ORDER BY TIMESTAMP DESC;
Questa query restituisce in ordine cronologico di aggiornamento dati (DML) le tabelle di tutto il database. Per ogni tabella verrà indicato l’owner, quante insert, update e delete sono state eseguite dalla creazione fino alla data indicata in TIMESTAMP.
Con questa query, usando la condizione TRUNCATED = ‘YES’, è possibile sapere quali tabelle sono state troncate e in quale data.
Abbiamo escluso le tabelle che contengono nel nome il simbolo del dollaro ($) perché queste sono tabelle di sistema.