ホームページ > データベース > mysql チュートリアル > Oracle で複数行の挿入を効率的に実行するにはどうすればよいですか?

Oracle で複数行の挿入を効率的に実行するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-22 18:04:12
オリジナル
160 人が閲覧しました

How to Efficiently Perform Multi-Row Inserts in Oracle?

Oracle データベースでの効率的な複数行の挿入方法

MySQL の単一ステートメントの複数行挿入とは異なり、Oracle データベースはこの直接的な方法をサポートしていません。 ただし、いくつかの方法で同様の機能を実現できます。

INSERT ALL 構文を使用します (Oracle 23c より前)

Oracle 23c より前のバージョンでは、複数行の挿入に INSERT ALL 構文を使用できます。次の例は、INSERT ALL を使用して 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>
ログイン後にコピー

Oracle 23c の簡略化された構文

Oracle 23c では、簡略化された複数行挿入構文が導入されています。

<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 の簡素化された構文は

アプローチよりも効率的です。パフォーマンスを最適化するために、一度に挿入する行数が約 1,000 行を超えないようにすることをお勧めします。 INSERT ALL

以上がOracle で複数行の挿入を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート