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

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

Linda Hamilton
リリース: 2025-01-22 18:21:13
オリジナル
746 人が閲覧しました

How Can I Efficiently Insert Multiple Rows into an Oracle Database?

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 中国語 Web サイトの他の関連記事を参照してください。

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