| Oracle® Data Provider for .NET開発者ガイド ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows E88311-03 |
|
![]() 前 |
![]() 次 |
このメソッドでは、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();
}
}