Oracle資料庫高效率批次插入資料方法
將多行資料插入Oracle資料庫有多種方法。 MySQL中常用的批次插入方法在Oracle中並不會直接支援。
使用INSERT ALL語句
在Oracle中,可以使用INSERT ALL
語句進行批次插入。此語句包含多個INTO
子句,每個子句代表一行要插入的資料。語句以SELECT 1 FROM DUAL
結尾,作為插入結束的標誌。
<code class="language-sql">INSERT ALL INTO t (col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3') INTO t (col1, col2, col3) VALUES ('val2_1', 'val2_2', 'val2_3') INTO t (col1, col2, col3) VALUES ('val3_1', 'val3_2', 'val3_3') . . . SELECT 1 FROM DUAL;</code>
Oracle 23c 簡化語法
Oracle 23c 引入了一種簡化的批次插入語法,無需使用INSERT ALL
語句。可以使用逗號分隔的清單插入多行數據,如下所示:
<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>
性能考量
對於大量數據,必須考慮效能問題。 Oracle 23c 中新的INSERT語法比INSERT ALL
快得多,與UNION ALL
方法的效能相當。但是,一次插入超過大約1000行資料會導致解析時間呈指數級增長。
以上是如何有效率地將多行插入Oracle資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!