PL/SQLにて本来のトランザクションと別のトランザクションを用意する
mj:df >データーベース >Oracle >PL/SQL >PL/SQLにて本来のトランザクションと別のトランザクションを用意する
PL/SQLなどでログの書き込みやシーケンス値を独自に採番する場合などで本来のトランザクションと別なタイミングでコミットを行いたい場合、プロシージャを「自律型トランザクション」として定義することにより実現できる。
プロシージャの宣言ブロックに、
PRAGMA AUTONOMOUS_TRANSACTION
と記述することで、そのプロシージャは現在のトランザクションと別のトランザクションとなる。
CREATE OR REPLACE PROCEDURE PACKAGE_XXX.TEST
- IS
- PRAGMA AUTONOMOUS_TRANSACTION;
- BEGIN
- -- 処理
- COMMIT;
- END;
- /




