ORA_DST_CONVERT |
Conversion Oracle |
| Oracle Database SQL |
Oracle 12c Release 1 (12.1) ou supérieure |
Syntaxe
|
ORA_DST_CONVERT(datetime_expr [, integer [, integer ]])
|
Paramètres
| Nom |
Description |
| datetime_expr |
Ce paramètre permet d'indiquer une expression de type date ou horodatage, avec ou sans fuseau horaire, que la fonction doit analyser et convertir vers la version de fichier de données de fuseaux horaires la plus récente. |
| integer |
Ce paramètre permet de spécifier la version actuelle du fichier de données de fuseaux horaires à partir de laquelle la conversion doit être effectuée. Il sert de point de référence pour déterminer les modifications nécessaires. |
| integer |
Ce paramètre permet de définir la version cible du fichier de données de fuseaux horaires vers laquelle la valeur temporelle doit être convertie. Si ce paramètre est omis, la conversion se fera vers la dernière version disponible. |
Description
Cette fonction permet de convertir les valeurs temporelles d'une base ou d'un ensemble de données vers la dernière version du fichier de données de fuseaux horaires Oracle. Elle est essentielle dans les migrations DST.
Remarques
- Utilisation en contexte de migration DST : La fonction ORA_DST_CONVERT est principalement utilisée lors des opérations de mise à jour des règles de fuseaux
horaires (DST) dans Oracle. Elle intervient dans la phase de conversion des données temporelles, après l'installation du nouveau fichier DST. Son usage est souvent encadré
par les procédures du paquet DBMS_DST.
- Compatibilité et disponibilité : Cette fonction est disponible à partir d'Oracle Database 12c Release 1 (12.1). Toutefois, elle ne peut pas être utilisée
librement dans tous les contextes : elle est conçue pour fonctionner uniquement durant les fenêtres de mise à jour DST initiées par DBMS_DST.BEGIN_UPGRADE et avant
END_UPGRADE.
- Type de données pris en charge : ORA_DST_CONVERT prend en paramètre une expression de type TIMESTAMP WITH TIME ZONE ou TIMESTAMP WITH LOCAL TIME ZONE. Ces
types incluent une information de fuseau, ce qui permet à la fonction d'appliquer correctement les nouvelles règles DST lors de la conversion.
- Conversion selon les nouvelles règles : La fonction applique les définitions de fuseaux horaires contenues dans le nouveau fichier DST installé sur le
serveur. Si des changements d'heure d'été ou d'hiver sont survenus (ex. : adoption ou suppression du DST), les horodatages sont ajustés pour correspondre aux nouvelles
règles.
- Gestion des ambiguïtés temporelles : Les migrations DST peuvent introduire des cas où une heure donnée est invalide ou apparaît deux fois (par exemple lors
du passage à l'heure d'hiver). ORA_DST_CONVERT gère ces ambiguïtés en fonction des paramètres supplémentaires fournis et des stratégies définies par l'administrateur.
- Paramètre optionnel : ancienne version DST : Le deuxième paramètre (entier) peut indiquer la version de fichier DST à partir de laquelle la conversion doit
être effectuée. Cela permet de cibler précisément les données qui ont été stockées avec une ancienne règle de fuseau horaire.
- Paramètre optionnel : nouvelle version DST : Le troisième paramètre (entier) peut spécifier la version de fichier DST vers laquelle la conversion doit être
réalisée. En le définissant, on s'assure que la migration respecte un objectif précis et ne se base pas seulement sur la version par défaut installée sur le serveur.
- Différence avec ORA_DST_AFFECTED : ORA_DST_AFFECTED permet uniquement de détecter si un horodatage est concerné par un changement DST, tandis que
ORA_DST_CONVERT modifie effectivement la valeur pour l'aligner sur la nouvelle règle. Ces deux fonctions sont souvent utilisées ensemble dans un processus de migration.
- Usage avec des tableaux et collections : En plus des scalaires, ORA_DST_CONVERT peut traiter des tableaux (VARRAY) de valeurs temporelles. Cela est pratique
pour convertir en masse plusieurs enregistrements entreposés dans un type complexe, sans avoir à itérer manuellement sur chaque élément.
- Performance et impact : Comme cette fonction agit sur des données potentiellement volumineuses, elle peut avoir un impact sur les performances si utilisée
sur de grandes tables. Dans les procédures DBMS_DST, elle est souvent couplée à des opérations par lot pour limiter les verrous et interruptions.
- Cas d'erreurs possibles : Si un horodatage à convertir correspond à une heure inexistante dans le nouveau fuseau (par exemple lors de l'avance à l'heure
d'été), la fonction peut retourner une erreur ou ajuster la valeur selon les règles définies. Cela nécessite souvent une validation manuelle ou des scripts de correction.
- Importance pour la conformité : Dans certaines industries (finance, transport, télécommunications), la précision des données temporelles est critique.
ORA_DST_CONVERT garantit que toutes les données respectent les nouvelles définitions de fuseaux horaires, évitant ainsi des incohérences ou des erreurs de calcul dans
les rapports et applications.
Dernière mise à jour : Dimanche, le 29 Juin 2025