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; 