トランザクション

トランザクションとは DML(SELECT を除いた) を扱うときの最小の管理単位であり、 トランザクションは コミット、または、ロールバック で終了しなければならない。

トランザクションは DML(SELECT を除いた)を開始した時点で、無名のトランザクションとして開始される。
(通常のトランザクションは長くても数分で処理を完了するために無名であることが多い。)

トランザクションの命名

SET TRANSACTION NAME transaction_name をトランザクションの先頭に記述することで、そのトランザクションに名前を設定することが可能になる。(名前は一意でなくても良い)
この名前は非常に長いトランザクションや 2 フェーズコミットを使用するトランザクションを監視したい場合に有用である。

ストアドプログラムとトランザクション

クライアントアプリケーションからストアド・サブプログラム(ストアドファンクションやプロシージャ) を呼び出したのち、(同一セッションで)実行結果に基づいて DML を実行する場合には、 呼び出したストアド・サブプログラム側に明示的なコミットがない限り同一のトランザクションに含まれる。

(勘違いすることはないとは思うが) スクリプト言語などで直列に SQLPlus などを個別に起動して処理している場合にはアプリケーションレベルでの暗黙的なコミットによりトランザクションは別々のものになる。
参考: SQL*Plus の終了時には COMMIT?、ROLLBACK?

 


トランザクション 関連事項

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle のライセンスがわからない…
Oracle Direct (ネットで聞いても最後はここで要確認)