プライマリ・コンテンツに移動

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

関連項目:

- Oracle.DataAccess.ClientおよびOracle.ManagedDataAccess.Clientのネームスペース

- OracleConnectionクラス

- OracleConnectionメンバー