トランザクションは、プログラムの最初の実行SQL文(CONNECT
以外)により開始します。1つのトランザクションが終了すると、次の実行SQL文により別のトランザクションが自動的に開始します。このように、すべての実行文はトランザクションの一部です。宣言SQL文は、ロールバックできず、コミットも必要ないため、トランザクションの一部とはみなされません。
COMMIT
文またはROLLBACK
文を記述し、RELEASE
オプションは付けても付けなくてもかまいません。これにより、データベースへの変更を明示的に確定または取り消します。
実行の前と後に自動コミットを発行するデータ定義文(ALTER
、CREATE
またはGRANT
など)を記述します。これにより、データベースへの変更を暗黙的に確定します。
システム障害が発生した場合や、ソフトウェアの問題、ハードウェアの問題または強制割込みなどが原因で、予期しないユーザー・セッション停止が発生した場合にも、トランザクションは終了します。そのトランザクションはOracleによりロールバックされます。
トランザクションの途中でプログラムに障害が発生すると、Oracleによりエラーが検出され、トランザクションはロールバックされます。オペレーティング・システムに障害が発生すると、データベースがトランザクション前の状態にリストアされます。