トランザクション制御文について
トランザクションとは、Oracle Databaseが1つの単位として扱う1つ以上のSQL文で、すべての文が実行される場合と実行される場合、または実行されないことがあります。複数の操作を1つの単位として実行する必要があるため、ビジネス・プロセスのモデル化にはトランザクションが必要です。
たとえば、マネージャが退職する場合、表にJOB_HISTORY表に行を挿入してマネージャが退職すると表示し、そのマネージャにレポートする全従業員はEMPLOYEES表内でMANAGER_IDの値を更新する必要があります。アプリケーションでこのプロセスをモデル化するには、INSERT文およびUPDATE文を1つのトランザクションにグループ化する必要があります。
基本的なトランザクション制御文は、SAVEPOINT、COMMITおよびROLLBACKです。
-
SAVEPOINTは、トランザクションにセーブポイントをマークします。このポイントからトランザクションをロールバックできます。セーブポイントはオプションで、1つのトランザクションで複数のセーブポイントを設定できます。
-
COMMITは、現在のトランザクションを終了して、変更を永続的にし、セーブポイントを消去して、ロックを解除します。
-
ROLLBACKは、現在のトランザクション全体か、または指定したセーブポイントの後に実行した変更のみをロールバックします(取り消す)。
SQL*Plus環境では、SQL>プロンプトでトランザクション制御文を入力できます。
SQL Developer環境では、ワークシートにトランザクション制御文を入力できます。SQL Developerには、「変更のコミット」および「変更のロールバック」アイコンもあります。詳細は、「トランザクションのコミット」および「トランザクションのロールバック」を参照してください。
注意:
明示的にトランザクションをコミットせずプログラムが異常終了した場合、データベースはコミットされていないトランザクションを自動的にロールバックします。
この動作により、アプリケーション・プログラムのトランザクションをコミットまたはロールバックして明示的に終了させます。
関連情報:
-
トランザクションの管理の詳細は、『Oracle Database概要』を参照してください。
-
トランザクション制御文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。