PostgreSQL や MySQL では次のように INSERT 文で 複数行を指定することができます。
psql=# INSERT INTO table1 (field1, field2) psql-# VALUES ('xxxxx1', 'xxxxxxxxx') psql-# , ('xxxxx2', 'xxxxxxxxx') psql-# , ('xxxxx3', 'xxxxxxxxx');
Oracle ではこの書き方ができません。
以下のように書きます。
SQL> INSERT ALL 2 INTO table1 (field1, field2) VALUES ('xxxxx1', 'xxxxxxxxx') 3 INTO table1 (field1, field2) VALUES ('xxxxx2', 'xxxxxxxxx') 4 INTO table1 (field1, field2) VALUES ('xxxxx3', 'xxxxxxxxx') 5 SELECT * FROM DUAL;
単に INSERT文をまとめただけのようですが この書き方は、異なるテーブルでもまとめることができます。 マルチテーブル・インサート と言うのですが 単に INSERT をまとめるだけではありません。
詳しくは次回。