Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie verwende ich Timestamp_to_scn und Scn_to_timestamp in Oracle?

Du versuchst, zu weit zurückzublicken. Sie können nur in und aus SCNs konvertieren, die sich im Redo/Flashback-Fenster befinden, das von Ihrem System verwaltet wird. Sobald Änderungen veraltet sind, geht die Zuordnung verloren.

Dies wird in der Dokumentation erklärt:

Die Zuordnung zwischen einem SCN und einem Zeitstempel, wenn der SCN generiert wird, wird von der Datenbank für einen begrenzten Zeitraum gespeichert. Dieser Zeitraum ist das Maximum der automatisch angepassten Rückgängig-Aufbewahrungszeit, wenn die Datenbank im automatischen Rückgängig-Verwaltungsmodus läuft, und der Aufbewahrungszeiten aller Flashback-Archive in der Datenbank, aber nicht weniger als 120 Stunden. Die Zeit bis zum Veralten der Zuordnung läuft nur ab, wenn die Datenbank geöffnet ist. Ein Fehler wird zurückgegeben, wenn der für das Argument angegebene SCN SCN_TO_TIMESTAMP ist ist zu alt.

Denken Sie daran, dass diese Teil des internen Mechanismus von Oracle sind und daher für uns von begrenztem Nutzen sind; obwohl sie natürlich für Flashback-Anfragen nützlich sind - wieder innerhalb desselben Fensters.