- PR -

一定行ごとにコミット

1
投稿者投稿内容
もじそんすくえあ
会議室デビュー日: 2004/10/20
投稿数: 15
投稿日時: 2005-03-24 20:30
下記のようなSQLであるテーブルに1000行挿入しようとする際に
10行ごとにコミットをさせたい場合の方法はあるのでしょうか?
一定行毎にコミットを実行させ、大量データを挿入したいと
考えています。

----
create table aaaa (col1 char(10));

DECLARE
x number := 1;
BEGIN
for i in 1..1000 loop
insert into AAAA VALUES (X);

x := x + 1 ;
END LOOP;
commit;
end;
/
おふぃすこま
常連さん
会議室デビュー日: 2005/01/24
投稿数: 22
投稿日時: 2005-03-25 09:23
おふぃすこまです。

DECLARE
x number := 1;
v_cd NUMBER;

BEGIN
for i in 1..1000 loop
insert into AAAA VALUES (X);

select mod(x,10) into v_cd from dual;

if v_cd = 0 then
commit;
end if;

x := x + 1 ;
END LOOP;
commit;
end;
/

↑はどうでしょう?

試してないのですが、効率悪そうですね、これ
もじそんすくえあ
会議室デビュー日: 2004/10/20
投稿数: 15
投稿日時: 2005-03-25 10:23
期待通りの動きができました。
ありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)