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

OracleLob クラス

Oracle サーバーに格納される、LOB (Large Object Binary) データ型を表します。このクラスは継承できません。

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

Public NotInheritable Class
 OracleLob
    Inherits Stream
    Implements ICloneable, IDisposable, INullable
public sealed class OracleLob : Stream, ICloneable,
 IDisposable, INullable
public ref class OracleLob sealed : public
 Stream, ICloneable, IDisposable, INullable
public final class OracleLob extends Stream
 implements ICloneable, IDisposable, 
    INullable
public final class OracleLob extends
 Stream implements ICloneable, IDisposable, 
    INullable
解説解説

OracleLob は、データが、オペレーティング システムの物理ファイルではなくサーバー上に格納されるという点で、OracleBFile データ型とは異なります。また、常に読み取り専用である OracleBFile とは違って、読み書き可能オブジェクトです。

OracleLob は、次の OracleType データ型の 1 つです。

OracleLob オブジェクトを取得するには、GetOracleLob メソッドを呼び出します。

この形式を使用して、NULL の OracleLob を構築できます。

OracleLob myLob = OracleLob.Null;

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

If(myLob == OracleLob.Null)

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

null 値が格納されている LOB 列を選択すると、Null が返されます。

一時 LOB を取得する前に、トランザクションを開始する必要があります。トランザクションが開始されていないと、OracleDataReader は、後続データの取得に失敗する可能性があります。

DBMS_LOB.CREATETEMPORARY システム ストアド プロシージャを呼び出し、LOB 出力パラメータをバインドすることによって、Oracle で一時 LOB を開くこともできます。クライアント側では、一時 LOB は、テーブル内の LOB と同様に動作します。たとえば、一時 LOB を更新するには、その LOB がトランザクション内に存在する必要があります。

一時 LOB を開く方法の C# の例を次に示します。

OracleConnection connection = new OracleConnection("server=MyServer; integrated security=yes;");
connection.Open();
OracleTransaction transaction = connection.BeginTransaction();
OracleCommand command = connection.CreateCommand();
command.Transaction = transaction;
command.CommandText = "declare xx blob; begin dbms_lob.createtemporary(xx, false,
 0); :tempblob := xx; end;";
command.Parameters.Add(new OracleParameter("tempblob", OracleType.Blob)).Direction
 = ParameterDirection.Output;
command.ExecuteNonQuery();
OracleLob tempLob = (OracleLob)command.Parameters[0].Value;
byte[] tempbuff = new byte[10000];
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);
tempLob.Write(tempbuff,0,tempbuff.Length);
tempLob.EndBatch();
command.Parameters.Clear();
command.CommandText = "MyTable.MyProc";
command.CommandType = CommandType.StoredProcedure;  
command.Parameters.Add(new OracleParameter("ImportDoc", OracleType.Blob)).Value =
 tempLob;
command.ExecuteNonQuery();
transaction.Commit();
メモメモ

継承された WriteByte メソッドに文字データを指定して使用すると、このメソッドは失敗し、InvalidOperationException がスローされます。代わりに、Write を使用してください。

継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.IO.Stream
      System.Data.OracleClient.OracleLob
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
OracleLob メンバ
System.Data.OracleClient 名前空間

OracleLob フィールド


パブリック フィールドパブリック フィールド

  名前 説明
パブリック フィールド Null null の OracleLob オブジェクトを表します。
参照参照

関連項目

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

OracleLob プロパティ


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

  名前 説明
パブリック プロパティ CanRead オーバーライドされます。 LOB ストリームを読み取ることができるかどうかを示す値を取得します。
パブリック プロパティ CanSeek オーバーライドされます。 前方シークおよび後方シーク操作を実行できるかどうかを示す値を取得します。
パブリック プロパティ CanTimeout  現在のストリームがタイムアウトできるかどうかを決定する値を取得します。 ( Stream から継承されます。)
パブリック プロパティ CanWrite オーバーライドされます。 LOB が書き込みをサポートしているかどうかに関係なく、常に true を返します。
パブリック プロパティ ChunkSize 読み取りまたは書き込み操作でサーバーから取得する、またはサーバーに送信する最小バイト数を示す値を取得します。
パブリック プロパティ Connection この OracleLob のインスタンスで使用される OracleConnection を取得します。
パブリック プロパティ IsBatched アプリケーションから BeginBatch メソッドが呼び出されたかどうかを示す値を取得します。
パブリック プロパティ IsNull OracleLob が Null ストリームであるかどうかを示す値を取得します。
パブリック プロパティ IsTemporary OracleLob が一時 LOB であるかどうかを示す値を取得します。
パブリック プロパティ Length オーバーライドされます。 OracleLob のサイズを返す値を取得します。
パブリック プロパティ LobType LOB データ型を返す値を取得します。
パブリック プロパティ Position オーバーライドされます。 OracleLob ストリーム内の現在の読み込み位置を取得します。
パブリック プロパティ ReadTimeout  ストリームがタイムアウト前に読み取りを試行する期間を決定する値を取得または設定します。 ( Stream から継承されます。)
パブリック プロパティ Value 基になる値と等価の共通言語ランタイムの値を取得します。
パブリック プロパティ WriteTimeout  ストリームがタイムアウト前に書き込みを試行する期間を決定する値を取得または設定します。 ( Stream から継承されます。)
参照参照

関連項目

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

OracleLob メソッド


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

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Append 指定した LOB のデータを現在の LOB に追加します。
パブリック メソッド BeginBatch オーバーロードされます。 複数の書き込み操作の実行中に、サーバー側のトリガが発生しないようにします。
パブリック メソッド BeginRead  非同期の読み込み動作を開始します。 ( Stream から継承されます。)
パブリック メソッド BeginWrite  非同期の書き込み操作を開始します。 ( Stream から継承されます。)
パブリック メソッド Clone 元の OracleLob オブジェクトと同じ Oracle の LOB を参照する、新しい OracleLob オブジェクトを作成します。
パブリック メソッド Close  現在のストリームを閉じ、現在のストリームに関連付けられているすべてのリソース (ソケット、ファイル ハンドルなど) を解放します。 ( Stream から継承されます。)
パブリック メソッド CopyTo オーバーロードされます。 この OracleLob のデータをコピー先の OracleLob にコピーします。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Dispose  オーバーロードされます。 この Stream オブジェクトによって使用されているすべてのリソースを解放します。 ( Stream から継承されます。)
パブリック メソッド EndBatch 複数の書き込み操作の実行後に、サーバー側のトリガの発生を再開します。
パブリック メソッド EndRead  保留中の非同期読み取りが完了するまで待機します。 ( Stream から継承されます。)
パブリック メソッド EndWrite  非同期書き込み操作を終了します。 ( Stream から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド Erase オーバーロードされます。 この OracleLob からデータを消去します。
パブリック メソッド Flush オーバーライドされます。 現在サポートされていません。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Read オーバーライドされます。 現在の OracleLob ストリームからバイト シーケンスを読み取り、読み取ったバイト数の分だけストリーム内の位置を進めます。
パブリック メソッド ReadByte  ストリームから 1 バイトを読み取り、ストリーム内の位置を 1 バイト進めます。ストリームの末尾の場合は -1 を返します。 ( Stream から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド Seek オーバーライドされます。 現在の OracleLob ストリームで位置を設定します。
パブリック メソッド SetLength オーバーライドされます。 OracleLob ストリームの長さを、現在の長さより短い値に設定します。
パブリック メソッド Synchronized  指定した Stream オブジェクトをラップするスレッド セーフな (同期された) ラッパーを作成します。 ( Stream から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
パブリック メソッド Write オーバーライドされます。 バイト シーケンスを現在の OracleLob ストリームに書き込み、書き込んだバイト数の分だけストリーム内の現在位置を進めます。
パブリック メソッド WriteByte オーバーライドされます。 OracleLob ストリームの現在位置にバイトを書き込み、ストリームの位置を 1 バイトだけ進めます。
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

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

OracleLob メンバ

Oracle サーバーに格納される、LOB (Large Object Binary) データ型を表します。このクラスは継承できません。

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


パブリック フィールドパブリック フィールド
  名前 説明
パブリック フィールド Null null の OracleLob オブジェクトを表します。
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ CanRead オーバーライドされます。 LOB ストリームを読み取ることができるかどうかを示す値を取得します。
パブリック プロパティ CanSeek オーバーライドされます。 前方シークおよび後方シーク操作を実行できるかどうかを示す値を取得します。
パブリック プロパティ CanTimeout  現在のストリームがタイムアウトできるかどうかを決定する値を取得します。(Stream から継承されます。)
パブリック プロパティ CanWrite オーバーライドされます。 LOB が書き込みをサポートしているかどうかに関係なく、常に true を返します。
パブリック プロパティ ChunkSize 読み取りまたは書き込み操作でサーバーから取得する、またはサーバーに送信する最小バイト数を示す値を取得します。
パブリック プロパティ Connection この OracleLob のインスタンスで使用される OracleConnection を取得します。
パブリック プロパティ IsBatched アプリケーションから BeginBatch メソッドが呼び出されたかどうかを示す値を取得します。
パブリック プロパティ IsNull OracleLob が Null ストリームであるかどうかを示す値を取得します。
パブリック プロパティ IsTemporary OracleLob が一時 LOB であるかどうかを示す値を取得します。
パブリック プロパティ Length オーバーライドされます。 OracleLob のサイズを返す値を取得します。
パブリック プロパティ LobType LOB データ型を返す値を取得します。
パブリック プロパティ Position オーバーライドされます。 OracleLob ストリーム内の現在の読み込み位置を取得します。
パブリック プロパティ ReadTimeout  ストリームがタイムアウト前に読み取りを試行する期間を決定する値を取得または設定します。 (Stream から継承されます。)
パブリック プロパティ Value 基になる値と等価の共通言語ランタイムの値を取得します。
パブリック プロパティ WriteTimeout  ストリームがタイムアウト前に書き込みを試行する期間を決定する値を取得または設定します。 (Stream から継承されます。)
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Append 指定した LOB のデータを現在の LOB に追加します。
パブリック メソッド BeginBatch オーバーロードされます。 複数の書き込み操作の実行中に、サーバー側のトリガが発生しないようにします。
パブリック メソッド BeginRead  非同期の読み込み動作を開始します。 (Stream から継承されます。)
パブリック メソッド BeginWrite  非同期の書き込み操作を開始します。 (Stream から継承されます。)
パブリック メソッド Clone 元の OracleLob オブジェクトと同じ Oracle の LOB を参照する、新しい OracleLob オブジェクトを作成します。
パブリック メソッド Close  現在のストリームを閉じ、現在のストリームに関連付けられているすべてのリソース (ソケット、ファイル ハンドルなど) を解放します。 (Stream から継承されます。)
パブリック メソッド CopyTo オーバーロードされます。 この OracleLob のデータをコピー先の OracleLob にコピーします。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Dispose  オーバーロードされます。 この Stream オブジェクトによって使用されているすべてのリソースを解放します。 (Stream から継承されます。)
パブリック メソッド EndBatch 複数の書き込み操作の実行後に、サーバー側のトリガの発生を再開します。
パブリック メソッド EndRead  保留中の非同期読み取りが完了するまで待機します。 (Stream から継承されます。)
パブリック メソッド EndWrite  非同期書き込み操作を終了します。 (Stream から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド Erase オーバーロードされます。 この OracleLob からデータを消去します。
パブリック メソッド Flush オーバーライドされます。 現在サポートされていません。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Read オーバーライドされます。 現在の OracleLob ストリームからバイト シーケンスを読み取り、読み取ったバイト数の分だけストリーム内の位置を進めます。
パブリック メソッド ReadByte  ストリームから 1 バイトを読み取り、ストリーム内の位置を 1 バイト進めます。ストリームの末尾の場合は -1 を返します。 (Stream から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド Seek オーバーライドされます。 現在の OracleLob ストリームで位置を設定します。
パブリック メソッド SetLength オーバーライドされます。 OracleLob ストリームの長さを、現在の長さより短い値に設定します。
パブリック メソッド Synchronized  指定した Stream オブジェクトをラップするスレッド セーフな (同期された) ラッパーを作成します。 (Stream から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
パブリック メソッド Write オーバーライドされます。 バイト シーケンスを現在の OracleLob ストリームに書き込み、書き込んだバイト数の分だけストリーム内の現在位置を進めます。
パブリック メソッド WriteByte オーバーライドされます。 OracleLob ストリームの現在位置にバイトを書き込み、ストリームの位置を 1 バイトだけ進めます。
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

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



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

「OracleLob」の関連用語

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

   

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



OracleLobのページの著作権

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

©2026 GRAS Group, Inc.RSS