フェッチ・アクロス・コミットでは、(COMMIT で ロックは解放されるため) SELECT 〜 FOR UPDATE を カーソル にしたフェッチ・アクロス・コミットは使用できない。そのため WHERE CURRENT OF による更新もできない。SELECT 〜 FOR UPDATE を使用しても ORA-01002: フェッチ順序が無効です。エラーになる。
フェッチ・アクロス・コミット 使用例
FOR vRec IN ( SELECT id, name FROM sample_table WHERE gender = 'MALE')
LOOP
DBMS_TRANSACTION.USE_ROLLBACK_SEGMENT('専用ロールバックセグメント');
-- 手動管理UPDATE sample_table SET name = 'Mr.' || name WHERE id = vRec.id;
COMMIT ;
END LOOP;