下記のようなHOGEテーブルに対して下記PL/SQLのコードをテストしています。
①で分割コミットされていることを確認するために、分割コミット後にUPDATE文でエラーを発生させたいのですが、どうすればエラーを発生することができますか?
または、他に良い方法はありますか?
※トリガーは権限がないため、使用できません。
また、PL/SQLのコードを変更せずにテストしたいです。
create table hoge (id char(1), name char(10));
SET SERVEROUTPUT ON DECLARE CURSOR test_cursor IS SELECT ID FROM HOGE ORDER BY ID; test_rec test_cursor%ROWTYPE; cnt NUMBER; BEGIN cnt := 0; FOR i in 1..9 LOOP INSERT INTO HOGE VALUES (i, 'name_' || i); END LOOP; FOR test_rec IN test_cursor LOOP UPDATE HOGE SET ID = '1' WHERE ID = test_rec.id; cnt := cnt + 1; IF 5 <= cnt THEN COMMIT; -- ・・・① DBMS_OUTPUT.PUT_LINE('分割コミットされました。'); cnt := 0; END IF; COMMIT; END LOOP; END; /
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。