OracleDataReaderとは? わかりやすく解説

OracleDataReader クラス

データ ソースからデータ行の前方ストリーム読み取る方法提供します。このクラス継承できません。

名前空間: System.Data.OracleClient
アセンブリ: System.Data.OracleClient (system.data.oracleclient.dll 内)
構文構文

Public NotInheritable Class
 OracleDataReader
    Inherits DbDataReader
Dim instance As OracleDataReader
public sealed class OracleDataReader : DbDataReader
public ref class OracleDataReader sealed :
 public DbDataReader
public final class OracleDataReader extends
 DbDataReader
public final class OracleDataReader extends
 DbDataReader
解説解説

OracleDataReader作成するには、コンストラクタ直接使用せずに、OracleCommand オブジェクトの ExecuteReader メソッド呼び出す必要があります

データ読み取り中に別のプロセスまたはスレッド結果セット加えた変更が、OracleDataReaderユーザー表示されることがあります

OracleDataReader閉じた後に呼び出すことができるのは、IsClosed プロパティと RecordsAffected プロパティだけです。場合によっては、RecordsAffected呼び出す前に Close呼び出す必要があります

OracleDataReader はいつでも複数開くことができます

OracleDataReader使用して OracleREF CURSOR取得する2 つVisual Basic の例を次に示します。この例では、Oracle の Scott/Tiger スキーマ定義されテーブル使用し次の PL/SQL パッケージパッケージ本体を必要とします。例で使用するために、これらをサーバー側で作成する必要があります

Oracle サーバーで、次の Oracle パッケージ作成します

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 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;
/

REF CURSOR パラメータ返す PL/SQL ストアド プロシージャ実行し、値を OracleDataReader として読み取る Visual Basic の例を示します

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

2 つREF CURSOR パラメータ返す PL/SQL ストアド プロシージャ実行しOracleDataReader使用して値を読み取る Visual Basic の例を示します

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

Oracle テーブル作成し作成したテーブルデータ読み込む C# の例を示しますこの後の例 (OracleType 構造体使用したデータに、OracleDataReader使用してアクセスする例) を実行する前に、この例を実行する必要があります

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

OracleDataReader使用してデータアクセスし、複数の OracleType 構造体使用してデータ表示する C# の例を示します

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();
   }
}
使用例使用例

OracleConnection、OracleCommand、および OracleDataReader作成する例を次に示します。この例では、データ読み取りコンソール出力します最後に、この例では OracleDataReader閉じてから、OracleConnection閉じます

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()
        Dim reader As OracleDataReader
        reader = command.ExecuteReader()
        ' Always call Read before accessing data.
        While reader.Read()
            Console.WriteLine(reader.GetInt32(0).ToString() + ",
 " _
               + reader.GetString(1))
        End While
        ' always call Close when done reading.
        reader.Close()
    End Using
End Sub
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();
        OracleDataReader reader;
        reader = command.ExecuteReader();
        // Always call Read before accessing data.
        while (reader.Read())
        {
            Console.WriteLine(reader.GetInt32(0) + ", " + reader.GetString(1));
        }
        // always call Close when done reading.
        reader.Close();
    }
}
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.Data.Common.DbDataReader
      System.Data.OracleClient.OracleDataReader
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
OracleDataReader メンバ
System.Data.OracleClient 名前空間

OracleDataReader プロパティ


パブリック プロパティパブリック プロパティ

参照参照

関連項目

OracleDataReader クラス
System.Data.OracleClient 名前空間

OracleDataReader メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド参照)
  名前 説明
パブリック メソッド Close オーバーライドされます。 OracleDataReader オブジェクト閉じます
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信使用するプロキシ生成必要な情報をすべて格納しているオブジェクト作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Dispose  オーバーロードされます。 DbDataReader によって使用されているリソース解放します。 ( DbDataReader から継承されます。)
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 ( Object から継承されます。)
パブリック メソッド GetBoolean オーバーライドされます指定した列の値をブール値として取得します
パブリック メソッド GetByte オーバーライドされます指定した列の値をバイトとして取得します
パブリック メソッド GetBytes オーバーライドされます指定したバッファ オフセット開始位置として、指定したオフセットからバッファに、バイトストリーム配列として読み込みます。
パブリック メソッド GetChar オーバーライドされます指定した列の値を文字として取得します
パブリック メソッド GetChars オーバーライドされます指定したバッファ オフセット開始位置として、指定したオフセットからバッファに、文字ストリーム配列として読み込みます。
パブリック メソッド GetData  要求された列の序数DbDataReader オブジェクト返します。 ( DbDataReader から継承されます。)
パブリック メソッド GetDataTypeName オーバーライドされますソース データ型名を取得します
パブリック メソッド GetDateTime オーバーライドされます指定した列の値を DateTime オブジェクトとして取得します
パブリック メソッド GetDecimal オーバーライドされます指定した列の値を Decimal オブジェクトとして取得します
パブリック メソッド GetDouble オーバーライドされます指定した列の値を倍精度浮動小数点数値として取得します
パブリック メソッド GetEnumerator オーバーライドされますデータ リーダー内の行を反復処理するために使用できる IEnumerator を返します
パブリック メソッド GetFieldType オーバーライドされますオブジェクトデータ型である Type取得します
パブリック メソッド GetFloat オーバーライドされます指定した列の値を単精度浮動小数点数として取得します
パブリック メソッド GetGuid オーバーライドされます指定した列の値をグローバル一意識別子 (GUID) として取得します
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 ( Object から継承されます。)
パブリック メソッド GetInt16 オーバーライドされます指定した列の値を 16 ビット符号付き整数として取得します
パブリック メソッド GetInt32 オーバーライドされます指定した列の値を 32 ビット符号付き整数として取得します
パブリック メソッド GetInt64 オーバーライドされます指定した列の値を 64 ビット符号付き整数として取得します
パブリック メソッド GetLifetimeService  対象インスタンス有効期間ポリシー制御する現在の有効期間サービス オブジェクト取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetName オーバーライドされます指定した列の名前を取得します
パブリック メソッド GetOracleBFile 指定した列の値を OracleBFile オブジェクトとして取得します
パブリック メソッド GetOracleBinary 指定した列の値を OracleBinary オブジェクトとして取得します
パブリック メソッド GetOracleDateTime 指定した列の値を OracleDateTime オブジェクトとして取得します
パブリック メソッド GetOracleLob 指定した列の値を OracleLob オブジェクトとして取得します
パブリック メソッド GetOracleMonthSpan 指定した列の値を OracleMonthSpan オブジェクトとして取得します
パブリック メソッド GetOracleNumber 指定した列の値を OracleNumber オブジェクトとして取得します
パブリック メソッド GetOracleString 指定した列の値を OracleString オブジェクトとして取得します
パブリック メソッド GetOracleTimeSpan 指定した列の値を OracleTimeSpan オブジェクトとして取得します
パブリック メソッド GetOracleValue 指定した序数の列の値を Oracle書式取得します
パブリック メソッド GetOracleValues 現在の行のすべての属性列を Oracle書式取得します
パブリック メソッド GetOrdinal オーバーライドされます。 列の名前を指定して、列の序数取得します
パブリック メソッド GetProviderSpecificFieldType オーバーライドされます。 基になるプロバイダ固有フィールド型の内部表現である Object取得します
パブリック メソッド GetProviderSpecificValue オーバーライドされます。 基になるプロバイダ固有フィールド型の内部表現である Object取得します
パブリック メソッド GetProviderSpecificValues オーバーライドされます。 基になるプロバイダ固有の値の内部表現であるオブジェクト配列取得します
パブリック メソッド GetSchemaTable オーバーライドされます。 OracleDataReader の列メタデータ記述する DataTable を返します
パブリック メソッド GetString オーバーライドされます指定した列の値を文字列として取得します
パブリック メソッド GetTimeSpan 指定した列の値を System.TimeSpan として取得します
パブリック メソッド GetType  現在のインスタンスType取得します。 ( Object から継承されます。)
パブリック メソッド GetValue オーバーライドされます指定した序数の列の値をネイティブ形式取得します
パブリック メソッド GetValues オーバーライドされます現在の行のすべての属性列を取得します
パブリック メソッド InitializeLifetimeService  対象インスタンス有効期間ポリシー制御する有効期間サービス オブジェクト取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド IsDBNull オーバーライドされます。 列に格納されている値が存在しない値または欠損値かどうかを示す値を取得します
パブリック メソッド NextResult オーバーライドされますOracleDataReader次の結果進めます
パブリック メソッド Read オーバーライドされますOracleDataReader次のレコード進めます
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 ( Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイス実装
  名前 説明
インターフェイスの明示的な実装 System.Collections.IEnumerable.GetEnumerator  
参照参照

関連項目

OracleDataReader クラス
System.Data.OracleClient 名前空間

OracleDataReader メンバ

データ ソースからデータ行の前方ストリーム読み取る方法提供します。このクラス継承できません。

OracleDataReader データ型公開されるメンバを以下の表に示します


パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド参照)
  名前 説明
パブリック メソッド Close オーバーライドされます。 OracleDataReader オブジェクト閉じます
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信使用するプロキシ生成必要な情報をすべて格納しているオブジェクト作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Dispose  オーバーロードされます。 DbDataReader によって使用されているリソース解放します。 (DbDataReader から継承されます。)
パブリック メソッド Equals  オーバーロードされます2 つObject インスタンス等しかどうか判断します。 (Object から継承されます。)
パブリック メソッド GetBoolean オーバーライドされます指定した列の値をブール値として取得します
パブリック メソッド GetByte オーバーライドされます指定した列の値をバイトとして取得します
パブリック メソッド GetBytes オーバーライドされます指定したバッファ オフセット開始位置として、指定したオフセットからバッファに、バイトストリーム配列として読み込みます。
パブリック メソッド GetChar オーバーライドされます指定した列の値を文字として取得します
パブリック メソッド GetChars オーバーライドされます指定したバッファ オフセット開始位置として、指定したオフセットからバッファに、文字ストリーム配列として読み込みます。
パブリック メソッド GetData  要求された列の序数DbDataReader オブジェクト返します。 (DbDataReader から継承されます。)
パブリック メソッド GetDataTypeName オーバーライドされますソース データ型名を取得します
パブリック メソッド GetDateTime オーバーライドされます指定した列の値を DateTime オブジェクトとして取得します
パブリック メソッド GetDecimal オーバーライドされます指定した列の値を Decimal オブジェクトとして取得します
パブリック メソッド GetDouble オーバーライドされます指定した列の値を倍精度浮動小数点数値として取得します
パブリック メソッド GetEnumerator オーバーライドされますデータ リーダー内の行を反復処理するために使用できる IEnumerator を返します
パブリック メソッド GetFieldType オーバーライドされますオブジェクトデータ型である Type取得します
パブリック メソッド GetFloat オーバーライドされます指定した列の値を単精度浮動小数点数として取得します
パブリック メソッド GetGuid オーバーライドされます指定した列の値をグローバル一意識別子 (GUID) として取得します
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用適してます。 (Object から継承されます。)
パブリック メソッド GetInt16 オーバーライドされます指定した列の値を 16 ビット符号付き整数として取得します
パブリック メソッド GetInt32 オーバーライドされます指定した列の値を 32 ビット符号付き整数として取得します
パブリック メソッド GetInt64 オーバーライドされます指定した列の値を 64 ビット符号付き整数として取得します
パブリック メソッド GetLifetimeService  対象インスタンス有効期間ポリシー制御する現在の有効期間サービス オブジェクト取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetName オーバーライドされます指定した列の名前を取得します
パブリック メソッド GetOracleBFile 指定した列の値を OracleBFile オブジェクトとして取得します
パブリック メソッド GetOracleBinary 指定した列の値を OracleBinary オブジェクトとして取得します
パブリック メソッド GetOracleDateTime 指定した列の値を OracleDateTime オブジェクトとして取得します
パブリック メソッド GetOracleLob 指定した列の値を OracleLob オブジェクトとして取得します
パブリック メソッド GetOracleMonthSpan 指定した列の値を OracleMonthSpan オブジェクトとして取得します
パブリック メソッド GetOracleNumber 指定した列の値を OracleNumber オブジェクトとして取得します
パブリック メソッド GetOracleString 指定した列の値を OracleString オブジェクトとして取得します
パブリック メソッド GetOracleTimeSpan 指定した列の値を OracleTimeSpan オブジェクトとして取得します
パブリック メソッド GetOracleValue 指定した序数の列の値を Oracle書式取得します
パブリック メソッド GetOracleValues 現在の行のすべての属性列を Oracle書式取得します
パブリック メソッド GetOrdinal オーバーライドされます。 列の名前を指定して、列の序数取得します
パブリック メソッド GetProviderSpecificFieldType オーバーライドされます。 基になるプロバイダ固有フィールド型の内部表現である Object取得します
パブリック メソッド GetProviderSpecificValue オーバーライドされます。 基になるプロバイダ固有フィールド型の内部表現である Object取得します
パブリック メソッド GetProviderSpecificValues オーバーライドされます。 基になるプロバイダ固有の値の内部表現であるオブジェクト配列取得します
パブリック メソッド GetSchemaTable オーバーライドされます。 OracleDataReader の列メタデータ記述する DataTable を返します
パブリック メソッド GetString オーバーライドされます指定した列の値を文字列として取得します
パブリック メソッド GetTimeSpan 指定した列の値を System.TimeSpan として取得します
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド GetValue オーバーライドされます指定した序数の列の値をネイティブ形式取得します
パブリック メソッド GetValues オーバーライドされます現在の行のすべての属性列を取得します
パブリック メソッド InitializeLifetimeService  対象インスタンス有効期間ポリシー制御する有効期間サービス オブジェクト取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド IsDBNull オーバーライドされます。 列に格納されている値が存在しない値または欠損値かどうかを示す値を取得します
パブリック メソッド NextResult オーバーライドされますOracleDataReader次の結果進めます
パブリック メソッド Read オーバーライドされますOracleDataReader次のレコード進めます
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイス実装
  名前 説明
インターフェイスの明示的な実装 System.Collections.IEnumerable.GetEnumerator  
参照参照

関連項目

OracleDataReader クラス
System.Data.OracleClient 名前空間


このページでは「.NET Framework クラス ライブラリ リファレンス」からOracleDataReaderを検索した結果を表示しています。
Weblioに収録されているすべての辞書からOracleDataReaderを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からOracleDataReader を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「OracleDataReader」の関連用語

OracleDataReaderのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



OracleDataReaderのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS