Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment utiliser Timestamp_to_scn et Scn_to_timestamp dans Oracle ?

Vous essayez de regarder trop loin en arrière. Vous ne pouvez convertir que vers et depuis des SCN qui se trouvent dans la fenêtre de rétablissement/flashback gérée par votre système. Une fois que les modifications ont expiré, le mappage est perdu.

Ceci est expliqué dans la documentation :

L'association entre un SCN et un horodatage lorsque le SCN est généré est mémorisée par la base de données pendant une période de temps limitée. Cette période correspond au maximum de la période de rétention d'annulation auto-réglée, si la base de données s'exécute en mode de gestion automatique des annulations, et des durées de rétention de toutes les archives flashback dans la base de données, mais pas moins de 120 heures. Le délai d'obsolescence de l'association ne s'écoule que lorsque la base de données est ouverte. Une erreur est renvoyée si le SCN spécifié pour l'argument de SCN_TO_TIMESTAMP est trop vieux.

Gardez à l'esprit qu'ils font partie du mécanisme interne d'Oracle et qu'ils nous sont donc d'une utilité limitée; bien qu'ils soient utiles pour les requêtes flashback bien sûr - encore une fois dans la même fenêtre.