OracleLob.Read メソッドとは? わかりやすく解説

OracleLob.Read メソッド

現在の OracleLob ストリームからバイト シーケンス読み取り読み取ったバイト数の分だけストリーム内の位置進めます

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

パラメータ

buffer

バイト配列。このメソッドが戻るとき、指定したバイト配列offset から (offset + count) までの値が、現在のソースから読み取られたバイト置き換えられ含まれます。

offset

現在のストリームから読み取ったデータ格納開始する位置を示す buffer内のバイト オフセットインデックス番号は 0 から始まりますCLOB 型および NCLOB 型の場合、これは偶数である必要があります

count

現在のストリームから読み取る最大バイト数。CLOB 型および NCLOB 型の場合、これは偶数である必要があります

戻り値
バッファ読み取られ合計バイト数。要求しただけのバイト数を読み取ることができなかった場合、この値は要求したバイト数より小さくなりますストリーム末尾到達した場合は 0 になることがあります

例外例外
例外種類条件

ArgumentNullException

buffernull 参照 (Visual Basic の場合Nothing) です。

ArgumentOutOfRangeException

offset パラメータまたは count パラメータの値が正の値ではありません。

または

オフセット パラメータカウント パラメータ合計値が、バッファ長を超えてます。

または

amount パラメータまたは offset パラメータ指定された値が 0 より小さいか、4 GB超えてます。

InvalidOperationException

操作トランザクション内で実行されていないか、OracleLob オブジェクトnull か、または接続閉じられています。

ObjectDisposedException

オブジェクト閉じられているか、破棄されています。

OracleException

Oracle エラー発生しました

解説解説

Read メソッドは、現在のストリームから最大count指定したバイト数だけ読み込み読み込んだバイトbuffer 内の offset で始まる位置格納しますストリーム現在位置が、読み込んだバイト数だけ進みます。ただし、例外発生した場合は、ストリーム内の現在位置そのまま変わりません。Read は、読み込んだバイト数を返します現在の位置ストリーム末尾である場合だけ、0 の値が返されます。読み取るデータない場合Read は、最低 1 バイトデータ読み取ることができるまでブロックされます。現在の位置LOB末尾場合LOB から読み取ろうとした場合Read は 0 を返しますストリーム末尾到達してない場合でも、Read は、必要なバイト未満データ返すことができます

.NET Framework Oracleデータ プロバイダは、すべての CLOB データおよび NCLOB データUnicode として処理します。したがってCLOB 型および NCLOB 型では 1 文字2 バイトとなるため、これらにアクセスするときは常に複数バイトを扱うことになります。たとえば、3 文字から成る文字列が、1 文字が 4 バイト文字セット使用している Oracle サーバーNCLOB として保存されていて、Read 操作実行する場合文字列サーバー12 バイトとして格納されていますが、文字列長さは 6 バイト指定します

OracleLob オブジェクト読み取る方法C# の例を次に示します

public static void ReadLobExample(OracleCommand command)
{
   int actual = 0;

   //Select some data.
   // Table Schema:
   //  "CREATE TABLE TableWithLobs (a int, b BLOB, c CLOB, d NCLOB)";
   //  "INSERT INTO TableWithLobs values (1, 'AA', 'AAA', N'AAAA')";
   command.CommandText = "SELECT * FROM TableWithLobs";
   OracleDataReader reader = command.ExecuteReader();
   using(reader)
   {
      //Obtain the first row of data.
      reader.Read();
      //Obtain the LOBs (all 3 varieties).
      OracleLob BLOB = reader.GetOracleLob(1);
      OracleLob CLOB  = reader.GetOracleLob(2);
      OracleLob NCLOB = reader.GetOracleLob(3);

      //Example - Reading binary data (in chunks).
      byte[] buffer = new byte[100];
      while((actual = BLOB.Read(buffer, 0, buffer.Length)) >0)
         Console.WriteLine(BLOB.LobType + ".Read(" + buffer + ", " + buffer.Length
 + ") => " + actual);

      //Example - Reading CLOB/NCLOB data (in chunks).
      //Note: You can read character data as raw Unicode bytes (using OracleLob.Read
 as in the above example).
      //However, because the OracleLob object inherits directly from the.NET stream
 object, 
      //all the existing classes that manipluate streams can also be used. For example,
 the 
      //.NET StreamReader makes converting the raw bytes into actual characters easier.
      StreamReader streamreader = new StreamReader(CLOB, Encoding.Unicode);
      char[] cbuffer = new char[100];
      while((actual = streamreader.Read(cbuffer, 0, cbuffer.Length)) >0)
         Console.WriteLine(CLOB.LobType + ".Read(" + new string(cbuffer, 0, actual)
 + ", " + cbuffer.Length + ") => " + actual);

      //Example - Reading data (all at once).
      //You could use StreamReader.ReadToEnd to obtain all the string data,or simply
      //call OracleLob.Value to obtain a contiguous allocation of all the data.
      Console.WriteLine(NCLOB.LobType + ".Value => " + NCLOB.Value);
   }
}

この形式使用してNULLOracleLob構築できます

OracleLob myLob = OracleLob.Null;

この手法は主に、次の例が示すように、サーバーから返されLOBNULL かどうかテストするために使用します

If(myLob == OracleLob.Null)

NULLLOB は、0 バイトLOB同じよう動作します。つまり、Read成功し、常に 0 バイト返します

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
OracleLob クラス
OracleLob メンバ
System.Data.OracleClient 名前空間


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

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

辞書ショートカット

すべての辞書の索引

OracleLob.Read メソッドのお隣キーワード
検索ランキング

   

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



OracleLob.Read メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS