[Oracle] Zeitpunkt des letzten Insert/Update/Delete?

BaseBallBatBoy

Erfahrenes Mitglied
Hallo

Gibt es bei Oracle irgendeine Systemtabelle die mir für jede Tabelle sagen kann, wann das letzte mal ein Insert/Update/Delete auf dieser Tabelle stattgefunden hat?

Gruss
 
Hallo,

es gibt (seit 10g, glaube ich) ALL_TAB_MODIFICATIONS ("describes tables accessible to the current user that have been modified since the last time statistics were gathered on the tables") mit der Spalte Timestamp ("Indicates the last time the table was modified"): http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2097.htm#i1591024.

Außerdem gibt's (in halbwegs aktuellen Releases) die Pseudo-Column ORA_ROWSCN, mit der man zu einem Datensatz eine SCN erhält, die sich - für halbwegs aktuelle Werte - in einen Timestamp umwandeln lässt (knapp erläutert: http://martinpreiss.blogspot.de/2010/02/orarowscn.html; technisch anspruchsvoller unter http://jonathanlewis.wordpress.com/2010/09/03/last-modified/)

Gruß

Martin
 
ALL_TAB_MODIFICATIONS

Hab ich angeschaut, aber die Tabellen die mich interessieren sind nicht da drin :(


Ich hab mal das erste Beispiel darin versucht mit der table link$, aber dass will er nicht. Sagt die gibt's nicht.

Zudem habe ich auch noch
SELECT SCN_TO_TIMESTAMP(max(ORA_ROWSCN)) FROM mytable versucht, aber das will er auch nicht:

ORA-08181: specified number is not a valid system change number
ORA-06512: at "SYS.SCN_TO_TIMESTAMP", line 1
08181. 00000 - "specified number is not a valid system change number"
*Cause: supplied scn was beyond the bounds of a valid scn.
*Action: use a valid scn.


Irgendwo habe ich gelesen, dass die SCN nicht allzu alt sein darf... aber da bin ich mir nicht sicher.
 

Neue Beiträge

Zurück