GetOracleDataReader
このメソッドは、選択リストのREF CURSORタイプの列に対応するOracleDataReaderオブジェクトを返します。
宣言
// C# public OracleDataReader GetOracleDataReader(int index);
パラメータ
-
indexゼロベースの列索引です。
戻り値
列のOracleDataReaderオブジェクト。
例外
InvalidOperationException - 接続またはリーダーがクローズされているか、Read()が呼び出されていないか、すべての行が読み取られています。
IndexOutOfRangeException - 列索引が無効です。
InvalidCastException - この列型のアクセッサ・メソッドが無効か、列値がNULLです。
備考
アプリケーションは、戻されたOracleDataReaderオブジェクトからデータを読み取ることができます。
戻されたOracleDataReaderオブジェクトは、OracleDataReaderからFetchSize、InitialLOBFetchSize、InitialLONGFetchSizeおよびUseEdmMappingプロパティ値を継承します。
例
CREATE OR REPLACE FUNCTION refcurfunc1 RETURN SYS_REFCURSOR
AS
VAR_REF SYS_REFCURSOR;
BEGIN
OPEN VAR_REF FOR
SELECT *
FROM EMP;
RETURN VAR_REF;
END;
using (OracleConnection con = new OracleConnection("user id = scott; password = <PASSWORD>; data source = oracle"))
{
con.Open();
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "select refcurfunc1() from dual";
OracleDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
OracleDataReader refCurReader = reader.GetOracleDataReader();
while (refCurReader.Read())
{
Console.WriteLine("RefCursor Data: " + refCurReader.GetString(0));
}
refCurReader.Close();
refCurReader.Dispose();
}
}