TIMESTAMP_TO_SCN |
Horodatage à SCN |
| Oracle Database SQL |
Oracle 10g Release 1 (version 10.1) ou supérieure |
Syntaxe
|
TIMESTAMP_TO_SCN(timestamp)
|
Paramètres
| Nom |
Description |
| timestamp |
Ce paramètre permet de spécifier une valeur de type TIMESTAMP représentant un moment précis que l'on souhaite convertir en System Change Number (SCN) correspondant. Il peut provenir d'une constante, d'une colonne ou d'une expression retournant un horodatage. |
Description
Cette fonction permet de convertir une valeur TIMESTAMP en un SCN (System Change Number), qui est un identifiant interne Oracle pour un point précis dans le temps de la base.
Remarques
- La fonction TIMESTAMP_TO_SCN est particulièrement utile pour les opérations de restauration ou de récupération dans Oracle, car elle permet de relier un moment précis
dans le temps à un System Change Number (SCN), qui est la référence interne pour suivre les changements dans la base de données.
- Elle est souvent utilisée dans le cadre du Flashback Query ou des requêtes temporelles, où il est nécessaire de retrouver l'état des données à un instant donné en
se basant sur le SCN.
- Cette fonction est disponible à partir d'Oracle 10g Release 1 (10.1), ce qui marque son introduction en même temps que d'autres fonctionnalités liées au Flashback et à
la gestion temporelle des données.
- Le paramètre timestamp doit être un type TIMESTAMP Oracle valide, ce qui inclut éventuellement une précision sur les fractions de seconde, afin de permettre
une conversion la plus exacte possible vers un SCN.
- Si l'horodatage fourni est antérieur au plus ancien SCN disponible dans les fichiers de redo logs ou dans l'UNDO, la fonction peut renvoyer une erreur, car Oracle ne
pourra pas associer cet instant à un SCN valide.
- La granularité de la conversion dépend de la précision interne d'Oracle dans la gestion des SCN : il est possible que plusieurs horodatages proches correspondent au
même SCN.
- Dans un environnement de Data Guard ou de RAC (Real Application Clusters), la conversion par TIMESTAMP_TO_SCN garantit une correspondance cohérente entre les instances
en utilisant le SCN global de la base.
- Cette fonction peut être l'inverse logique de SCN_TO_TIMESTAMP, qui permet de convertir un SCN en horodatage, ce qui facilite la navigation temporelle dans les
deux sens.
- Pour les développeurs, TIMESTAMP_TO_SCN offre un moyen simple de passer d'une donnée de type date/heure, souvent utilisée dans les applications, à une donnée interne
Oracle nécessaire pour des requêtes basées sur SCN.
- Elle est particulièrement utile dans les scripts PL/SQL automatisés qui font des sauvegardes sélectives, des extractions de données historiques ou des vérifications
d'intégrité à un moment donné.
- La valeur renvoyée est un entier correspondant au SCN, et ce numéro peut être directement utilisé dans une clause AS OF SCN pour interroger la base telle qu'elle
était à ce moment.
- L'utilisation de TIMESTAMP_TO_SCN contribue à rendre les opérations de récupération et d'audit plus précises, car elle évite les approximations liées aux conversions
de dates et garantit un repère interne fiable pour Oracle.
Dernière mise à jour : Dimanche, le 29 Juin 2025