Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Preparazione all'aggiornamento del file di fuso orario
L'aggiornamento di un file di fuso orario prevede due fasi distinte: preparazione e aggiornamento. Anche se non richiesto, è fortemente consigliabile eseguire la fase di preparazione. In questo passaggio, scoprirai quali dati saranno interessati dall'esecuzione della SQL procedura DBMS_DST.FIND_AFFECTED_TABLES
PL/. Per ulteriori informazioni sulla finestra di preparazione, consulta Aggiornamento del file di fuso orario e del timestamp con dati di fuso orario
Per preparare l'aggiornamento del file di fuso orario
-
Connect al database Oracle tramite un SQL client.
-
Determinare la versione corrente del file di fuso orario utilizzata.
SELECT * FROM V$TIMEZONE_FILE;
-
Determinare la versione più recente del file di fuso orario disponibile nell'istanza database.
SELECT DBMS_DST.GET_LATEST_TIMEZONE_VERSION FROM DUAL;
-
Determinare la dimensione totale delle tabelle con colonne di tipo
TIMESTAMP WITH LOCAL TIME ZONE
oTIMESTAMP 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');
-
Determinare i nomi e le dimensioni dei segmenti con colonne di tipo
TIMESTAMP WITH LOCAL TIME ZONE
oTIMESTAMP 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;
-
Eseguire la fase di preparazione.
-
La procedura
DBMS_DST.CREATE_AFFECTED_TABLE
crea una tabella per l'archiviazione dei dati interessati. Passare il nome di questa tabella alla proceduraDBMS_DST.FIND_AFFECTED_TABLES
. Per ulteriori informazioni, vedere TABLEProcedura CREATE _ AFFECTED _nella documentazione di Oracle Database. -
La procedura
CREATE_ERROR_TABLE
crea una tabella per registrare gli errori. Per ulteriori informazioni, vedere TABLEProcedura CREATE _ ERROR _nella documentazione di Oracle Database.
Nell'esempio seguente vengono create le tabelle dei dati e degli errori interessati e vengono trovate tutte le tabelle interessate.
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
; -
-
Eseguire una query sulle tabelle interessate e di errore.
SELECT * FROM
my_affected_table
; SELECT * FROMmy_error_table
;