Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Persiapan untuk memperbarui file zona waktu
Pemutakhiran file zona waktu memiliki dua fase terpisah: siapkan dan mutakhirkan. Meskipun tidak diperlukan, sebaiknya lakukan langkah persiapan. Pada langkah ini, Anda mengetahui data mana yang akan terpengaruh dengan menjalankan SQL prosedur DBMS_DST.FIND_AFFECTED_TABLES
PL/. Untuk informasi selengkapnya tentang periode persiapan, lihat Upgrading the Time Zone File and Timestamp with Time Zone Data
Sebagai persiapan untuk memperbarui file zona waktu
-
Connect ke database Oracle Anda menggunakan SQL klien.
-
Tentukan versi file zona waktu saat ini yang digunakan.
SELECT * FROM V$TIMEZONE_FILE;
-
Tentukan versi file zona waktu terbaru yang tersedia di instans DB Anda.
SELECT DBMS_DST.GET_LATEST_TIMEZONE_VERSION FROM DUAL;
-
Tentukan ukuran total tabel yang memiliki kolom tipe
TIMESTAMP WITH LOCAL TIME ZONE
atauTIMESTAMP 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');
-
Tentukan nama dan ukuran segmen yang memiliki kolom tipe
TIMESTAMP WITH LOCAL TIME ZONE
atauTIMESTAMP 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;
-
Jalankan langkah persiapan.
-
Prosedur
DBMS_DST.CREATE_AFFECTED_TABLE
membuat tabel untuk menyimpan data yang terpengaruh. Anda meneruskan nama tabel ini ke prosedurDBMS_DST.FIND_AFFECTED_TABLES
. Untuk informasi selengkapnya, lihat CREATE_ AFFECTED _ TABLE Prosedurdalam dokumentasi Oracle Database. -
Prosedur
CREATE_ERROR_TABLE
membuat tabel untuk mencatat kesalahan. Untuk informasi selengkapnya, lihat CREATE_ ERROR _ TABLE Prosedurdalam dokumentasi Oracle Database.
Contoh berikut membuat data dan tabel kesalahan yang terpengaruh, dan menemukan semua tabel yang terpengaruh.
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
; -
-
Kueri tabel yang terpengaruh dan memiliki kesalahan.
SELECT * FROM
my_affected_table
; SELECT * FROMmy_error_table
;