プライマリ・コンテンツに移動
Oracle® Data Provider for .NET開発者ガイド
ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows
E88311-03
目次へ移動
目次
索引へ移動
索引

前
次

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();
  }
}