こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

一気に複数のレコードをinsertする方法について

SQLのinsert文で一気に複数のレコードを挿入する方法ってありますか?
SQL*LoaderとPL/SQL以外でお願いします。

投稿日時 - 2007-11-28 11:39:23

QNo.3553501

暇なときに回答ください

このQ&Aは役に立ちましたか?

16人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

insert all into Table values(a,b) into Table values(c,d) select * from dual

abcdはデータ内容で、ポイントはinsertの後のallと、select * from dualをつけることです。

投稿日時 - 2008-11-21 11:21:01

ANo.5

エクセルのデータを一気にinsertするなら、下記フリーソフトがいかがですか
http://www.jdbckit.com

参考URL:http://www.jdbckit.com

投稿日時 - 2008-02-21 22:44:36

ANo.4

どんな簡単なPL/SQLを使う方法はあります。

1.レコードがエクセルになっていて、
2.頻繁にインサート文を発行することがある

のであれば、VBA(マクロ)を書いて、エクセルのデータを元に、
複数のINSERT文を含むPL/SQL文を一気につくることが可能ですよ。
マクロを作る知識が必要なのは言うまでもありませんが、そう難しいものではありません。
生成されたPL/SQLは無名プログラムとして、PQLPLUSから流すというわけです。いろいろな場所で使われている方法です。

投稿日時 - 2007-12-04 22:43:13

ANo.3

insert into テーブル (a,b)
select 1,2 from dual
union
select 2,3 from dual;

なんてやれば単一表に任意の複数レコード入るには入る。
ただ自分で書いていて実用的な気がしない

投稿日時 - 2007-11-30 18:51:55

ANo.2

>SQLのinsert文で一気に複数のレコードを挿入する方法

insert ~ selectなら、既存の表から複数行を検索して、一気に格納できます。

複数表にinsertしたいなら、Oracleではマルチテーブル・インサートという独自機能があるようです。

http://www.atmarkit.co.jp/fdb/rensai/sqlclinic12/sqlclinic12_1.html

投稿日時 - 2007-11-29 03:15:40

ANo.1

挿入するレコードは任意の値なのでしょうか?

テーブルにあるデータなら、
insert into テーブル1 (a,b,c) select a,b,c from テーブル2
見たいな感じで。

それ以外ならひとつずつしかないね。

投稿日時 - 2007-11-28 23:54:39

あなたにオススメの質問