複数のセッションで次の PL/SQL を実行しました。
DECLARE
x NUMBER;
y NUMBER;
BEGIN
x := 500;
y := 0;
WHILE (x > y)
LOOP
SET TRANSACTION
Select max(SERIAL_NO) INTO y from MY_TABLE;
y := y + 1;
insert into MY_TABLE S (S.SERIAL_NO, S.Request_id)
values ((
(select max(SERIAL_NO) from MY_TABLE) + 1
)
,'B');
Commit;
END LOOP;
END;
/
テーブルにまだ重複したエントリがありますが、どうしてこうなったのでしょうか?