1

私は db2 ストアド プロシージャで遊んでいますが、次の概念を理解するのに苦労しています。以下のような単純なストアドプロシージャを作成すると

create or replace procedure test()
begin
insert into mytable(a) values ('a');
insert into mytable(a) values ('b');
insert into mytable(a) values ('c');
end

この作成中に mytable がいっぱいになることがわかります。「call test()」を使用してデータを挿入することを期待していましたが、思っていたものとは違うことがわかりました。ここで私が間違っていることは何ですか、それともこのように機能しますか?

この奇妙な動作を回避するには、すべてを同じ行に配置する必要があることがわかりました。つまり、「作成または置換プロシージャ」を呼び出したときにデータが挿入されないという期待があります。

create or replace procedure test() begin insert into mytable(a) values ('a'); insert  into mytable(a) values ('b');  insert into mytable(a) values ('c');     end
4

2 に答える 2