Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Sisipan Berbilang Baris dengan Cekap dalam Oracle?

Bagaimana untuk Melaksanakan Sisipan Berbilang Baris dengan Cekap dalam Oracle?

Patricia Arquette
Patricia Arquetteasal
2025-01-22 18:04:12205semak imbas

How to Efficiently Perform Multi-Row Inserts in Oracle?

Kaedah sisipan berbilang baris yang cekap dalam pangkalan data Oracle

Tidak seperti sisipan berbilang baris pernyataan tunggal MySQL, pangkalan data Oracle tidak menyokong kaedah langsung ini. Tetapi kita boleh mencapai fungsi yang serupa dalam beberapa cara:

Gunakan INSERT ALL sintaks (sebelum Oracle 23c)

Dalam versi sebelum Oracle 23c, anda boleh menggunakan sintaks INSERT ALL untuk sisipan berbilang baris. Contoh berikut menunjukkan cara menggunakan INSERT ALL untuk memasukkan data ke dalam jadual TMP_DIM_EXCH_RT:

<code class="language-sql">INSERT ALL
INTO TMP_DIM_EXCH_RT 
(EXCH_WH_KEY, 
 EXCH_NAT_KEY, 
 EXCH_DATE, EXCH_RATE, 
 FROM_CURCY_CD, 
 TO_CURCY_CD, 
 EXCH_EFF_DATE, 
 EXCH_EFF_END_DATE, 
 EXCH_LAST_UPDATED_DATE) 
VALUES
    (1, 1, '28-AUG-2008', 109.49, 'USD', 'JPY', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
    (2, 1, '28-AUG-2008', .54, 'USD', 'GBP', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
    (3, 1, '28-AUG-2008', 1.05, 'USD', 'CAD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
    (4, 1, '28-AUG-2008', .68, 'USD', 'EUR', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
    (5, 1, '28-AUG-2008', 1.16, 'USD', 'AUD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
    (6, 1, '28-AUG-2008', 7.81, 'USD', 'HKD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008')
SELECT 1 FROM DUAL;</code>

Sintaks dipermudahkan Oracle 23c

Oracle 23c memperkenalkan sintaks sisipan berbilang baris yang dipermudahkan:

<code class="language-sql">INSERT INTO t(col1, col2, col3) VALUES
('val1_1', 'val1_2', 'val1_3'),
('val2_1', 'val2_2', 'val2_3'),
('val3_1', 'val3_2', 'val3_3');</code>

Sintaks ini membenarkan berbilang baris disisipkan menggunakan satu pernyataan.

Pertimbangan Prestasi

Untuk set data yang besar, sintaks ringkas Oracle 23c adalah lebih cekap daripada pendekatan INSERT ALL. Untuk mengoptimumkan prestasi, adalah disyorkan bahawa bilangan baris yang dimasukkan pada satu masa tidak boleh melebihi kira-kira 1,000 baris.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Sisipan Berbilang Baris dengan Cekap dalam Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn