Save(String)

このメソッドは、データベース内にセーブポイントを作成します。

宣言

// C#
public void Save(string savePointName);

パラメータ

savePointName - 現行トランザクション内に作成するセーブポイントの名前。

例外

InvalidOperationException – トランザクションはすでに正常に完了しているか、ロールバックされているか、接続がクローズされているか、または接続がSystem.Transactions (ローカルまたは分散)に登録されています。

System.ObjectDisposedException - OracleConnectionオブジェクトがすでに破棄されている場合は、このプロパティにアクセスできません。

備考

トランザクションは、セーブポイントの作成後に完了状態にはなりません。トランザクション全体のロールバックではなく、特定のセーブポイントまでそれをロールバックできます。

このメソッドを使用すると、トランザクション内にセーブポイントを作成できます。これは、OracleTransaction Save(string savepoint)メソッドと動作が同じです。ただし、"SELECT … FOR UPDATE"を使用する暗黙的なトランザクションや、自動コミットが無効になっている状態でINSERT/UPDATE/DELETE文を実行する暗黙的なトランザクションなど、使用できるOracleTransactionオブジェクトがなくてもこのメソッドを呼び出す必要がある場合があります。

このメソッドでは、接続が明示的ローカル・トランザクション内や暗黙的ローカル・トランザクション内にあるかトランザクションに関連付けられていない場合に例外は発生しません。このメソッドは、System.Transactionsに登録されている接続では実行できません。

同じトランザクションで、以前に使用したセーブポイント名が指定されている場合は、以前のセーブポイントが現在のセーブポイントで上書きされます。

セーブポイントは大/小文字の区別なしでデータベース内に作成されるため、RollbackおよびSaveメソッドでのセーブポイント名の大/小文字の区別が一致している必要はありません。