6.4.6.3 BeginTransaction(IsolationLevel)
このメソッドは、ローカル・トランザクションを指定された分離レベルで開始します。
宣言
// C#
public OracleTransaction BeginTransaction(IsolationLevel isolationLevel);
パラメータ
-
isolationLevel
新規トランザクションの分離レベル
戻り値
OracleTransaction
オブジェクトは、新規トランザクションを表します。
実装
IDbConnection
例外
InvalidOperationException
- トランザクションはすでに開始されています。
ArgumentException
- 指定したisolationLevel
値が無効です。
備考
分離レベルIsolationLevel.ReadCommitted
およびIsolationLevel.Serializable
がサポートされています。
BeginTransaction
メソッドは、IsolationLevel.Serializable
分離レベルをサポートしていますが、System.Transactions
およびTransactionScope
を使用する場合、シリアライズ可能なトランザクションはサポートされません。
他の分離レベルを要求すると、例外が発生します。
備考(.NETストアド・プロシージャ)
このメソッドをコンテキスト接続用の.NETストアド・プロシージャで使用すると、未サポートの例外が発生します。
例
// C# using System; using System.Data; using Oracle.DataAccess.Client; class BeginTransactionSample { static void Main() { string constr = "User Id=scott;Password=tiger;Data Source=oracle"; OracleConnection con = new OracleConnection(constr); con.Open(); // Create an OracleCommand object using the connection object OracleCommand cmd = con.CreateCommand(); // Start a transaction OracleTransaction txn = con.BeginTransaction(IsolationLevel.ReadCommitted); // Update EMP table cmd.CommandText = "update emp set sal = sal + 100"; cmd.ExecuteNonQuery(); // Rollback transaction txn.Rollback(); Console.WriteLine("Transaction rolledback"); // Clean up txn.Dispose(); cmd.Dispose(); con.Dispose(); } }