SAVEPOINT
目的
SAVEPOINT
文を使用すると、後でロールバックできるシステム変更番号(SCN)の名前を作成できます。
関連項目:
-
セーブポイントの詳細は、『Oracle Database概要』を参照してください。
-
トランザクションのロールバックの詳細は、「ROLLBACK」を参照してください。
-
現行トランザクションの特性の設定については、「SET TRANSACTION」を参照してください。
前提条件
なし。
構文
savepoint::=
セマンティクス
savepoint
作成するセーブポイントの名前を指定します。
同一トランザクション内のセーブポイント名は、区別する必要があります。同じ識別子のセーブポイントを作成した場合、最初のセーブポイントは消去されます。セーブポイントを作成した後は、処理の継続、作業のコミット、トランザクション全体のロールバックまたはセーブポイントまでのロールバックを実行できます。
例
セーブポイントの作成: 例
次の文は、サンプル表hr.employees
のBanda
とGreene
の給与を更新するために、部門の給与合計が314,000ドルを超えていないことを確認してから、Greene
の給与を再入力します。
UPDATE employees SET salary = 7000 WHERE last_name = 'Banda'; SAVEPOINT banda_sal; UPDATE employees SET salary = 12000 WHERE last_name = 'Greene'; SAVEPOINT greene_sal; SELECT SUM(salary) FROM employees; ROLLBACK TO SAVEPOINT banda_sal; UPDATE employees SET salary = 11000 WHERE last_name = 'Greene'; COMMIT;