Oracle の複数行INSERT

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 もチェックして実行する。