Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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
;