Rollback(String)

このメソッドは、ローカル・トランザクションを指定のセーブポイントまでロールバックします。

宣言

// C#
public void Rollback(string savepointName);

例外

InvalidOperationException – 接続がクローズされている場合、または接続がSystem.Transactions (ローカルと分散の両方)に登録されている場合。

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

Oracle.ManagedDataAccess.Client.OracleException - 渡されたセーブポイントが、以前にSave(String savepoint)によって確立されていないか、無効なセーブポイントです。

備考

セーブポイントへのロールバックの後、現行トランザクションはアクティブを維持し、その後の操作に使用できます。

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

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

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