Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Préparation de la mise à jour du fichier sur le fuseau horaire
Une mise à niveau de fichier sur le fuseau horaire comporte deux phases distinctes : la préparation et la mise à niveau. Même si ce n'est pas nécessaire, nous vous recommandons vivement de procéder à l'étape de préparation. Dans cette étape, vous découvrez quelles données seront affectées par l'exécution de la procédure PL/SQL DBMS_DST.FIND_AFFECTED_TABLES. Pour plus d'informations sur la fenêtre de préparation, consultez Mise à niveau du fichier sur le fuseau horaire et de l'horodatage avec les données de fuseau horaire
Pour préparer la mise à jour du fichier sur le fuseau horaire
-
Connectez-vous à votre base de données Oracle à l'aide d'un client SQL.
-
Déterminez la version actuelle du fichier sur le fuseau horaire utilisé.
SELECT * FROM V$TIMEZONE_FILE; -
Déterminez la dernière version de fichier sur le fuseau horaire disponible sur votre instance de base de données.
SELECT DBMS_DST.GET_LATEST_TIMEZONE_VERSION FROM DUAL; -
Déterminez la taille totale des tables qui ont des colonnes de type
TIMESTAMP WITH LOCAL TIME ZONEouTIMESTAMP WITH TIME ZONE.SELECT SUM(BYTES)/1024/1024/1024 "Total_size_w_TSTZ_columns_GB" FROM DBA_SEGMENTS WHERE SEGMENT_TYPE LIKE 'TABLE%' AND (OWNER, SEGMENT_NAME) IN (SELECT OWNER, TABLE_NAME FROM DBA_TAB_COLUMNS WHERE DATA_TYPE LIKE 'TIMESTAMP%TIME ZONE'); -
Déterminez les noms et les tailles des segments qui ont des colonnes de type
TIMESTAMP WITH LOCAL TIME ZONEouTIMESTAMP WITH TIME ZONE.SELECT OWNER, SEGMENT_NAME, SUM(BYTES)/1024/1024/1024 "SEGMENT_SIZE_W_TSTZ_COLUMNS_GB" FROM DBA_SEGMENTS WHERE SEGMENT_TYPE LIKE 'TABLE%' AND (OWNER, SEGMENT_NAME) IN (SELECT OWNER, TABLE_NAME FROM DBA_TAB_COLUMNS WHERE DATA_TYPE LIKE 'TIMESTAMP%TIME ZONE') GROUP BY OWNER, SEGMENT_NAME; -
Exécutez l'étape de préparation.
-
La procédure
DBMS_DST.CREATE_AFFECTED_TABLEcrée une table pour stocker toutes les données affectées. Vous passez le nom de cette table à la procédureDBMS_DST.FIND_AFFECTED_TABLES. Pour plus d'informations, consultez Procédure CREATE_AFFECTED_TABLEdans la documentation Oracle Database. -
Cette procédure
CREATE_ERROR_TABLEcrée une table pour journaliser les erreurs. Pour plus d'informations, consultez Procédure CREATE_ERROR_TABLEdans la documentation Oracle Database.
L'exemple suivant crée les tables de données et d'erreurs affectées, et recherche toutes les tables affectées.
EXEC DBMS_DST.CREATE_ERROR_TABLE('my_error_table') EXEC DBMS_DST.CREATE_AFFECTED_TABLE('my_affected_table') EXEC DBMS_DST.BEGIN_PREPARE(new_version); EXEC DBMS_DST.FIND_AFFECTED_TABLES('my_affected_table', TRUE, 'my_error_table'); EXEC DBMS_DST.END_PREPARE; SELECT * FROMmy_affected_table; SELECT * FROMmy_error_table; -
-
Interrogez les tables affectées et les tables d'erreurs.
SELECT * FROMmy_affected_table; SELECT * FROMmy_error_table;