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