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

Oracle® Data Provider for .NET開発者ガイド ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows E88311-03 |
| 目次 | 索引

前 | 次 |

# ExecuteReader()

このメソッドでは、`CommandText`で指定されたコマンドを実行し、`OracleDataReader`オブジェクトを戻します。

宣言

    // C#
    public OracleDataReader ExecuteReader();

戻り値

`OracleDataReader`。

実装

`IDbCommand`

例外

`InvalidOperationException` - コマンドを実行できない場合

備考

`CommandType`プロパティが`CommandType.StoredProcedure`に設定されると、`CommandText`プロパティはストアド・プロシージャの名前に設定される必要があります。

`ExecuteReader`を呼び出すと、この指定したコマンドによってこのストアド・プロシージャが実行されます。ストアド・プロシージャのパラメータが`REF` `CURSOR`オブジェクトで構成されている場合は、`ExecuteReader()`または`ExecuteNonQuery()`を呼び出すかどうかによって動作は異なります。`ExecuteReader()`を起動すると、`REF` `CURSOR`オブジェクトは、戻される`OracleDataReader`を通じてアクセスできます。1つの実行から複数の`REF` `CURSOR`が戻される場合、後続の`REF` `CURSOR`オブジェクトは、`NextResult`メソッドによって`OracleDataReader`で順番にアクセスできます。`ExecuteNonQuery`メソッドを起動すると、出力パラメータ値を`OracleRefCursor`型にキャストでき、次に`OracleRefCursor`オブジェクトを使用して、`DataSet`を移入するかまたは`OracleDataReader`オブジェクトを作成できます。この方法で、出力パラメータとして戻されたすべての`REF` `CURSOR`オブジェクトにランダムにアクセスすることができます。

`FetchSize`に対しては値`100`が使用されます。`0`を指定すると、行はフェッチされません。詳細は、Obtaining LONG and LONG RAW Dataを参照してください。

`XmlCommandType`プロパティの値が、`OracleXmlCommandType.Insert`、`OracleXmlCommandType.Update`、`OracleXmlCommandType.Delete`または`OracleXmlCommandType.Query`に設定されている場合、`ExecuteReader`メソッドは`InvalidOperationException`をスローします。

例

    // C#

    using System;
    using System.Data;
    using Oracle.DataAccess.Client;

    class ExecuteReaderSample
    {
      static void Main()
      {
        string constr = "User Id=scott;Password=tiger;Data Source=oracle";
        OracleConnection con = new OracleConnection(constr);
        con.Open();

        OracleCommand cmd = new OracleCommand("select ename from emp", con);

        OracleDataReader reader = cmd.ExecuteReader();

        while (reader.Read())
        {
          Console.WriteLine("Employee Name : " + reader.GetString(0));
        }

        // Clean up
        reader.Dispose();
        cmd.Dispose();
        con.Dispose();
      }
    }

関連項目:

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

- OracleCommandクラス

- OracleCommandメンバー

- OracleRefCursorクラス