If you want to find, when a table was last modified like insert,update ,delete, then use the dictionary table dba_tab_modifications.

SCENARIO:

1. Insert into test data:

SQL[SCOTT@TDB01]SQL>>]insert into TEST values (10);

1 row created.

SQL[SCOTT@TDB01]SQL>>]commit;

Commit complete.

2. Check dba_tab_modification:
SQL[SYS@TCRMDB01]SQL>>]select INSERTS,UPDATES,DELETES,TRUNCATED,TIMESTAMP from dba_tab_modifications where TABLE_NAME='TEST' and TABLE_OWNER='SCOTT';

no rows selected

 

As you can see, the dba_tab_modification is not showing any rows. Now you need to flush the info , to update the dba_tab_modification table.

3.Flush the monitoring Info


SQL[SYS@TCB01]SQL>>]exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;

PL/SQL procedure successfully completed.

SQL[SYS@TDB01]SQL>>]select INSERTS,UPDATES,DELETES,TRUNCATED,TIMESTAMP from dba_tab_modifications where TABLE_NAME='TEST' and TABLE_OWNER='SCOTT';


   INSERTS    UPDATES    DELETES TRU TIMESTAMP
---------- ---------- ---------- --- ---------
         1          0          0 NO  27-MAY-16


 

Now you should be the able to see the last modified information from dba_tab_modification. If you want to see, when a DDL change happened to the table , then use the below query.

 

select owner,object_name,object_type,status,last_ddl_time from dba_objects where object_name='SCOTT' and object_type='TABLE';