Oracle で一度に複数行のデータをINSERTするSQL文は、長くなってとても嫌だ。
INSERT ALL INTO tablename VALUES ( value1, value2, ... ) INTO tablename VALUES ( value1, value2, ... ) INTO tablename VALUES ( value1, value2, ... ) SELECT 1 FROM DUAL
1行1行の間に、',' カンマは入れない!
カラム名を指定するともっと長くなる。
INSERT ALL INTO tablename ( column1, colimn2, ... ) VALUES ( value1, value2, ... ) INTO tablename ( column1, colimn2, ... ) VALUES ( value1, value2, ... ) INTO tablename ( column1, colimn2, ... ) VALUES ( value1, value2, ... ) SELECT 1 FROM DUAL
条件によって挿入させる場合(ちょっと目的とずれるけど。。)
INSERT FIRST WHEN condition1 THEN INTO tablename VALUES ( value1, value2, ... ) WHEN condition2 THEN INTO tablename VALUES ( value1, value2, ... ) ELSE INTO tablename VALUES ( value1, value2, ... ) SELECT 1 FROM DUAL
ELSE INTO ~省略化で、その他の挿入をさせないこともできる。
INSERT FIRST ではなく INSERT ALL にすると、この WHEN 条件は、
condition1 が、true であろうが、false であろうが、
condition2 もチェックして実行する。