INSERT VALUES
ステートメントは常に正確に1行を挿入します。ハードコードされた値で複数の行を挿入する場合、最も一般的なアプローチは、2つの別々のINSERT
を実行することです。 ステートメント。
insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);
本当に必要な場合は、ハードコードされた値をdual
から選択できます。 次に、INSERT SELECT
を実行します
insert into t1
select 131309, 'HP', '20-FEB-04',2000000,1235 from dual
union all
select 131310,'HT','20-APR-14',120020,1234 from dual
または、INSERT ALL
を実行することもできます
insert all
into t1 values(131309,'HP','20-FEB-04',2000000,1235)
into t1 values(131310,'HT','20-APR-14',120020,1234)
select * from dual
個人的には、2つのステートメントを使用します。
これはあなたの質問とは関係ありませんが、いくつかのコメント
- 常に、
insert
の列を常にリストアップしてください 声明。将来、NULL
を許可する新しい列を追加する場合に備えて、SQLをはるかに堅牢にします。 あなたのステートメントがまだ機能する値。また、列リストがすぐそこにあると、誰かがテーブル内の列の順序を覚えていることを期待するのではなく、多くのバグを回避できます。 date
に値を挿入する場合 列には、日付を表す文字列リテラルではなく、日付を使用します。暗黙的なデータ型変換に依存することは、多くのバグの原因です。明示的なto_date
を使用する または、ANSI日付リテラルを使用します。そして、4桁の年を使用します。