OracleDataReader OracleDataReader OracleDataReader OracleDataReader Class

定義

データ ソースからデータ行の前方向ストリームを読み取る方法を提供します。Provides a way of reading a forward-only stream of data rows from a data source. このクラスは継承できません。This class cannot be inherited.

public ref class OracleDataReader sealed : System::Data::Common::DbDataReader
public sealed class OracleDataReader : System.Data.Common.DbDataReader
type OracleDataReader = class
    inherit DbDataReader
Public NotInheritable Class OracleDataReader
Inherits DbDataReader
継承
OracleDataReaderOracleDataReaderOracleDataReaderOracleDataReader

次の例では、作成、 OracleConnectionOracleCommand、およびOracleDataReaderします。The following example creates an OracleConnection, an OracleCommand, and an OracleDataReader. 例では、コンソールに書き出し、データを読み取ります。The example reads through the data, writing it out to the console. 最後に、例、 OracleDataReaderOracleConnectionします。Finally, the example closes the OracleDataReader, then the OracleConnection.

public void ReadData(string connectionString)
{
   string queryString = "SELECT EmpNo, EName FROM Emp";
   using (OracleConnection connection = new OracleConnection(connectionString))
   {
      OracleCommand command = new OracleCommand(queryString, connection);
      connection.Open();
      using(OracleDataReader reader = command.ExecuteReader())
      {
      // Always call Read before accessing data.
    	 while (reader.Read())
    	 {
        	Console.WriteLine(reader.GetInt32(0) + ", " + reader.GetString(1));
    	 }
      }
   }
}
Public Sub ReadData(ByVal connectionString As String)
    Dim queryString As String = "SELECT EmpNo, EName FROM Emp"
    Using connection As New OracleConnection(connectionString)
        Dim command As New OracleCommand(queryString, connection)
        connection.Open()
        Using reader As OracleDataReader = command.ExecuteReader()
            ' Always call Read before accessing data.
            While reader.Read()
                Console.WriteLine(reader.GetInt32(0).ToString() + ", " _
                   + reader.GetString(1))
            End While
        End Using
    End Using
End Sub

注釈

作成する、 OracleDataReader、呼び出す必要があります、ExecuteReaderのメソッド、OracleCommandコンス トラクターを使用して直接ではなく、オブジェクトします。To create an OracleDataReader, you must call the ExecuteReader method of the OracleCommand object, rather than directly using a constructor.

データの読み取り中に、別のプロセスまたはスレッドによって結果セットに加えられた変更は、のユーザーに表示される可能性があります、OracleDataReaderします。Changes made to a resultset by another process or thread while data is being read may be visible to the user of the OracleDataReader.

IsClosed RecordsAffected後に呼び出すことができる唯一のプロパティは、OracleDataReaderが閉じられました。IsClosed and RecordsAffected are the only properties that you can call after the OracleDataReader is closed. 場合によっては、呼び出す必要があるCloseを呼び出すにはRecordsAffectedします。In some cases, you must call Close before you can call RecordsAffected.

1 つ以上OracleDataReader一度に開くことができます。More than one OracleDataReader can be open at any given time.

次のような Visual Basic の 2 つの例は、使用する方法を示します、 OracleDataReader Oracle を取得するREF CURSORします。The following two Visual Basic examples demonstrate how to use an OracleDataReader to retrieve an Oracle REF CURSOR. これらの例は、Oracle Scott/tiger スキーマで定義され、次の PL/SQL パッケージとパッケージ本体を必要とするテーブルを使用します。These examples use tables that are defined in the Oracle Scott/Tiger schema, and require the following PL/SQL package and package body. 例を使用するサーバーでこれらを作成する必要があります。You must create these on your server to use the examples.

次の Oracle パッケージを Oracle サーバー上に作成します。Create the following Oracle package on the Oracle server.

CREATE OR REPLACE PACKAGE CURSPKG AS   
   TYPE T_CURSOR IS REF CURSOR;   
   PROCEDURE OPEN_ONE_CURSOR (N_EMPNO IN NUMBER,   
      IO_CURSOR IN OUT T_CURSOR);   
   PROCEDURE OPEN_TWO_CURSORS (EMPCURSOR OUT T_CURSOR,   
      DEPTCURSOR OUT T_CURSOR);  
END CURSPKG;  
/  

Oracle サーバーで、次の Oracle パッケージ本体を作成します。Create the following Oracle package body on the Oracle server.


CREATE OR REPLACE PACKAGE BODY CURSPKG AS   
    PROCEDURE OPEN_ONE_CURSOR (N_EMPNO IN NUMBER,   
                               IO_CURSOR OUT T_CURSOR)   
    IS   
        V_CURSOR T_CURSOR;   
    BEGIN   
        IF N_EMPNO <> 0 THEN   
             OPEN V_CURSOR FOR   
             SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME   
                  FROM EMP, DEPT   
                  WHERE EMP.DEPTNO = DEPT.DEPTNO   
                        AND EMP.EMPNO = N_EMPNO;   
        ELSE   
             OPEN V_CURSOR FOR   
             SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME   
                  FROM EMP, DEPT   
                  WHERE EMP.DEPTNO = DEPT.DEPTNO;   
        END IF;   
        IO_CURSOR := V_CURSOR;   
    END OPEN_ONE_CURSOR;   
    PROCEDURE OPEN_TWO_CURSORS (EMPCURSOR OUT T_CURSOR,   
                                DEPTCURSOR OUT T_CURSOR)   
    IS   
        V_CURSOR1 T_CURSOR;   
        V_CURSOR2 T_CURSOR;   
    BEGIN   
        OPEN V_CURSOR1 FOR SELECT * FROM EMP;   
        OPEN V_CURSOR2 FOR SELECT * FROM DEPT;   
        EMPCURSOR  := V_CURSOR1;   
        DEPTCURSOR := V_CURSOR2;   
    END OPEN_TWO_CURSORS;   
END CURSPKG;  
/  

この Visual Basic の例を返す PL/SQL ストアド プロシージャの実行、REF CURSORパラメーターとして値を読み取ります、 OracleDataReaderThis Visual Basic example executes a PL/SQL stored procedure that returns a REF CURSOR parameter, and reads the value as an OracleDataReader.

Private Sub ReadOracleData(ByVal connectionString As String)  
   Dim connection As New OracleConnection(connectionString)  
   Dim command As New OracleCommand()  
   Dim reader As OracleDataReader  

   connection.Open()  
   command.Connection = connection  
   command.CommandText = "CURSPKG.OPEN_ONE_CURSOR"  
   command.CommandType = CommandType.StoredProcedure  
   command.Parameters.Add(New OracleParameter("N_EMPNO", OracleType.Number)).Value = 7369  
   command.Parameters.Add(New OracleParameter("IO_CURSOR", OracleType.Cursor)).Direction = ParameterDirection.Output  

   reader = command.ExecuteReader()  
   While (reader.Read())  
      ' Do something with the values.  
   End While  
   reader.Close()  
   connection.Close()  
End Sub  

この Visual Basic の例を 2 つを返す PL/SQL ストアド プロシージャを実行しますREF CURSORパラメーターを使用して値を読み取ると、OracleDataReaderします。This Visual Basic example executes a PL/SQL stored procedure that returns two REF CURSOR parameters, and reads the values using an OracleDataReader.

Private Sub ReadOracleData(ByVal connectionString As String)  
   Dim dataSet As New DataSet()  
   Dim connection As New OracleConnection(connectionString)  
   Dim command As New OracleCommand()  
   Dim reader As OracleDataReader  

   connection.Open()  
   command.Connection = connection  
   command.CommandText = "CURSPKG.OPEN_TWO_CURSORS"  
   command.CommandType = CommandType.StoredProcedure  
   command.Parameters.Add(New OracleParameter("EMPCURSOR", OracleType.Cursor)).Direction = ParameterDirection.Output  
   command.Parameters.Add(New OracleParameter("DEPTCURSOR", OracleType.Cursor)).Direction = ParameterDirection.Output  

   reader = command.ExecuteReader(CommandBehavior.CloseConnection)  
   While (reader.Read())  
      ' Do something with the values.  
   End While  
   reader.NextResult()  
   While (reader.Read())  
        ' Do something with the values.  
   End While  
   reader.Close()  
   connection.Close()  
 End Sub  

この C# コード例では、Oracle のテーブルを作成し、データを読み込みます。This C# example creates an Oracle table and loads it with data. その後の例では、使用方法を示しますを実行する前に、この例を実行する必要があります、 OracleDataReader OracleType 構造を使用してデータにアクセスします。You must run this example prior to running the subsequent example, which demonstrates using an OracleDataReader to access the data using OracleType structures.

public void Setup(string connectionString)  
{  
   OracleConnection connection = new OracleConnection(connectionString);  
   try  
   {  
      connection.Open();  
      OracleCommand command = connection.CreateCommand();  
      command.CommandText ="CREATE TABLE OracleTypesTable (MyVarchar2 varchar2(3000),MyNumber number(28,4) PRIMARY KEY,MyDate date, MyRaw raw(255))";  
      command.ExecuteNonQuery();  
      command.CommandText ="INSERT INTO OracleTypesTable VALUES ('test', 2, to_date('2000-01-11 12:54:01','yyyy-mm-dd hh24:mi:ss'), '0001020304')";  
      command.ExecuteNonQuery();  
      command.CommandText="SELECT * FROM OracleTypesTable";  
   }  
   catch(Exception)  
   {  
   }  
   finally  
   {  
      connection.Close();  
   }  
}  

この C# の例では、OracleDataReaderデータにアクセスするいくつかを使用してOracleType構造データを表示します。This C# example uses an OracleDataReader to access data, and uses several OracleType structures to display the data.

public void ReadOracleTypesExample(string connectionString)  
{  
   OracleConnection connection = new OracleConnection(connectionString);  
   connection.Open();  
   OracleCommand command = connection.CreateCommand();  
   try  
   {  
      command.CommandText = "SELECT * FROM OracleTypesTable";  
      OracleDataReader reader = command.ExecuteReader();  
      reader.Read();  
      //Using the Oracle specific getters for each type is faster than  
      //using GetOracleValue.  
      //First column, MyVarchar2, is a VARCHAR2 data type in Oracle Server  
      //and maps to OracleString.  
      OracleString oraclestring1 = reader.GetOracleString(0);  
      Console.WriteLine("OracleString " + oraclestring1.ToString());  

      //Second column, MyNumber, is a NUMBER data type in Oracle Server  
      //and maps to OracleNumber.  
      OracleNumber oraclenumber1 = reader.GetOracleNumber(1);  
      Console.WriteLine("OracleNumber " + oraclenumber1.ToString());  

      //Third column, MyDate, is a DATA data type in Oracle Server  
      //and maps to OracleDateTime.  
      OracleDateTime oracledatetime1 = reader.GetOracleDateTime(2);  
      Console.WriteLine("OracleDateTime " + oracledatetime1.ToString());  

      //Fourth column, MyRaw, is a RAW data type in Oracle Server and  
      //maps to OracleBinary.  
      OracleBinary oraclebinary1 = reader.GetOracleBinary(3);  

      //Calling value on a null OracleBinary throws  
      //OracleNullValueException; therefore, check for a null value.  
      if (oraclebinary1.IsNull==false)  
      {  
         foreach(byte b in oraclebinary1.Value)  
         {  
            Console.WriteLine("byte " + b.ToString());  
         }  
      }  
      reader.Close();  
   }  
   catch(Exception e)  
   {  
      Console.WriteLine(e.ToString());  
   }  
   finally  
   {  
      connection.Close();  
   }  
}  

プロパティ

Depth Depth Depth Depth

現在の行の入れ子の深さを示す値を取得します。Gets a value indicating the depth of nesting for the current row.

FieldCount FieldCount FieldCount FieldCount

現在の行の列の数を取得します。Gets the number of columns in the current row.

HasRows HasRows HasRows HasRows

OracleDataReader に 1 行以上の行が格納されているかどうかを示す値を取得します。Gets a value indicating whether the OracleDataReader contains one or more rows.

IsClosed IsClosed IsClosed IsClosed

OracleDataReader が閉じているかどうかを示します。Indicates whether the OracleDataReader is closed.

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

列の序数によって指定した列の値をネイティブ形式で取得します。Gets the value of the specified column in its native format given the column ordinal.

Item[String] Item[String] Item[String] Item[String]

列名によって指定した列の値をネイティブ形式で取得します。Gets the value of the specified column in its native format given the column name.

RecordsAffected RecordsAffected RecordsAffected RecordsAffected

SQL ステートメントの実行によって変更、挿入、または削除された行の数を取得します。Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.

メソッド

Close() Close() Close() Close()

OracleDataReader オブジェクトを閉じます。Closes the OracleDataReader object.

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
Dispose() Dispose() Dispose() Dispose()

このオブジェクトによって使用されているリソースを解放します。Releases the resources that are used by this object.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32)

指定された列の値を Boolean として取得します。Gets the value of the specified column as a Boolean.

GetByte(Int32) GetByte(Int32) GetByte(Int32) GetByte(Int32)

指定された列の値をバイトとして取得します。Gets the value of the specified column as a byte.

GetBytes(Int32, Int64, Byte[], Int32, Int32) GetBytes(Int32, Int64, Byte[], Int32, Int32) GetBytes(Int32, Int64, Byte[], Int32, Int32) GetBytes(Int32, Int64, Byte[], Int32, Int32)

指定した列オフセットから、指定したバッファー オフセットから始まるバイトのストリームを、配列としてバッファーに読み取ります。Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetChar(Int32) GetChar(Int32) GetChar(Int32) GetChar(Int32)

指定した列の値を文字として取得します。Gets the value of the specified column as a character.

GetChars(Int32, Int64, Char[], Int32, Int32) GetChars(Int32, Int64, Char[], Int32, Int32) GetChars(Int32, Int64, Char[], Int32, Int32) GetChars(Int32, Int64, Char[], Int32, Int32)

指定した列オフセットから、指定したバッファー オフセットから始まる文字列ストリームを、配列としてバッファーに読み取ります。Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetData(Int32) GetData(Int32) GetData(Int32) GetData(Int32)

指定された列序数の IDataReader を返します。Returns an IDataReader for the specified column ordinal.

GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32)

ソース データ型名を取得します。Gets the name of the source data type.

GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32)

指定された列の値を DateTime オブジェクトとして取得します。Gets the value of the specified column as a DateTime object.

GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32)

指定された列の値を Decimal オブジェクトとして取得します。Gets the value of the specified column as a Decimal object.

GetDouble(Int32) GetDouble(Int32) GetDouble(Int32) GetDouble(Int32)

指定された列の値を倍精度浮動小数点値として取得します。Gets the value of the specified column as a double-precision floating point number.

GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

データ リーダー内の行に対して反復処理を行うために使用できる IEnumerator を返します。Returns an IEnumerator that can be used to iterate through the rows in the data reader.

GetFieldType(Int32) GetFieldType(Int32) GetFieldType(Int32) GetFieldType(Int32)

オブジェクトのデータ型である Type を取得します。Gets the Type that is the data type of the object.

GetFloat(Int32) GetFloat(Int32) GetFloat(Int32) GetFloat(Int32)

指定した列の値を単精度浮動小数点数として取得します。Gets the value of the specified column as a single-precision floating-point number.

GetGuid(Int32) GetGuid(Int32) GetGuid(Int32) GetGuid(Int32)

指定された列の値をグローバル一意識別子 (GUID) として取得します。Gets the value of the specified column as a globally-unique identifier (GUID).

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetInt16(Int32) GetInt16(Int32) GetInt16(Int32) GetInt16(Int32)

指定した列の値を 16 ビット符号付き整数として取得します。Gets the value of the specified column as a 16-bit signed integer.

GetInt32(Int32) GetInt32(Int32) GetInt32(Int32) GetInt32(Int32)

指定された列の値を 32 ビット符号付き整数として取得します。Gets the value of the specified column as a 32-bit signed integer.

GetInt64(Int32) GetInt64(Int32) GetInt64(Int32) GetInt64(Int32)

指定された列の値を 64 ビット符号付き整数として取得します。Gets the value of the specified column as a 64-bit signed integer.

GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetName(Int32) GetName(Int32) GetName(Int32) GetName(Int32)

指定した列の名前を取得します。Gets the name of the specified column.

GetOracleBFile(Int32) GetOracleBFile(Int32) GetOracleBFile(Int32) GetOracleBFile(Int32)

指定した列の値を OracleBFile オブジェクトとして取得します。Gets the value of the specified column as an OracleBFile object.

GetOracleBinary(Int32) GetOracleBinary(Int32) GetOracleBinary(Int32) GetOracleBinary(Int32)

指定した列の値を OracleBinary オブジェクトとして取得します。Gets the value of the specified column as an OracleBinary object.

GetOracleDateTime(Int32) GetOracleDateTime(Int32) GetOracleDateTime(Int32) GetOracleDateTime(Int32)

指定した列の値を OracleDateTime オブジェクトとして取得します。Gets the value of the specified column as an OracleDateTime object.

GetOracleLob(Int32) GetOracleLob(Int32) GetOracleLob(Int32) GetOracleLob(Int32)

指定した列の値を OracleLob オブジェクトとして取得します。Gets the value of the specified column as an OracleLob object.

GetOracleMonthSpan(Int32) GetOracleMonthSpan(Int32) GetOracleMonthSpan(Int32) GetOracleMonthSpan(Int32)

指定した列の値を OracleMonthSpan オブジェクトとして取得します。Gets the value of the specified column as an OracleMonthSpan object.

GetOracleNumber(Int32) GetOracleNumber(Int32) GetOracleNumber(Int32) GetOracleNumber(Int32)

指定した列の値を OracleNumber オブジェクトとして取得します。Gets the value of the specified column as an OracleNumber object.

GetOracleString(Int32) GetOracleString(Int32) GetOracleString(Int32) GetOracleString(Int32)

指定した列の値を OracleString オブジェクトとして取得します。Gets the value of the specified column as an OracleString object.

GetOracleTimeSpan(Int32) GetOracleTimeSpan(Int32) GetOracleTimeSpan(Int32) GetOracleTimeSpan(Int32)

指定した列の値を OracleTimeSpan オブジェクトとして取得します。Gets the value of the specified column as an OracleTimeSpan object.

GetOracleValue(Int32) GetOracleValue(Int32) GetOracleValue(Int32) GetOracleValue(Int32)

指定した序数の列の値を Oracle の書式で取得します。Gets the value of the column at the specified ordinal in its Oracle format.

GetOracleValues(Object[]) GetOracleValues(Object[]) GetOracleValues(Object[]) GetOracleValues(Object[])

現在の行のすべての属性列を Oracle の書式で取得します。Gets all the attribute columns in the current row in Oracle format.

GetOrdinal(String) GetOrdinal(String) GetOrdinal(String) GetOrdinal(String)

列の名前を指定して、列の序数を取得します。Gets the column ordinal, given the name of the column.

GetProviderSpecificFieldType(Int32) GetProviderSpecificFieldType(Int32) GetProviderSpecificFieldType(Int32) GetProviderSpecificFieldType(Int32)

基になるプロバイダー固有フィールド型の内部表現である Object を取得します。Gets an Object that is a representation of the underlying provider specific field type.

GetProviderSpecificValue(Int32) GetProviderSpecificValue(Int32) GetProviderSpecificValue(Int32) GetProviderSpecificValue(Int32)

基になるプロバイダー固有フィールド型の内部表現である Object を取得します。Gets an Object that is a representation of the underlying provider specific field type.

GetProviderSpecificValues(Object[]) GetProviderSpecificValues(Object[]) GetProviderSpecificValues(Object[]) GetProviderSpecificValues(Object[])

基になるプロバイダー固有の値の内部表現であるオブジェクトの配列を取得します。Gets an array of objects that are a representation of the underlying provider specific values.

GetSchemaTable() GetSchemaTable() GetSchemaTable() GetSchemaTable()

OracleDataReader の列メタデータを記述する DataTable を返します。Returns a DataTable that describes the column metadata of the OracleDataReader.

GetString(Int32) GetString(Int32) GetString(Int32) GetString(Int32)

指定した列の値を文字列として取得します。Gets the value of the specified column as a string.

GetTimeSpan(Int32) GetTimeSpan(Int32) GetTimeSpan(Int32) GetTimeSpan(Int32)

指定した列の値を System.TimeSpan として取得します。Gets the value of the specified column as a System.TimeSpan.

GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
GetValue(Int32) GetValue(Int32) GetValue(Int32) GetValue(Int32)

指定した序数の列の値をネイティブ形式で取得します。Gets the value of the column at the specified ordinal in its native format.

GetValues(Object[]) GetValues(Object[]) GetValues(Object[]) GetValues(Object[])

オブジェクトの配列に現在行の列値を設定します。Populates an array of objects with the column values of the current row.

InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32)

列に格納されている値が存在しない値または欠損値かどうかを示す値を取得します。Gets a value indicating whether the column contains non-existent or missing values.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
NextResult() NextResult() NextResult() NextResult()

OracleDataReader を次の結果に進めます。Advances the OracleDataReader to the next result

Read() Read() Read() Read()

OracleDataReader を次のレコードに進めます。Advances the OracleDataReader to the next record.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

明示的なインターフェイスの実装

IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator()

コレクションを反復処理する列挙子を返します。Returns an enumerator that iterates through a collection.

適用対象