OracleLob クラス
アセンブリ: System.Data.OracleClient (system.data.oracleclient.dll 内)

Public NotInheritable Class OracleLob Inherits Stream Implements ICloneable, IDisposable, INullable

OracleLob は、データが、オペレーティング システムの物理ファイルではなくサーバー上に格納されるという点で、OracleBFile データ型とは異なります。また、常に読み取り専用である OracleBFile とは違って、読み書き可能オブジェクトです。
OracleLob は、次の OracleType データ型の 1 つです。
OracleType データ型 | |
---|---|
最大 4 GB のバイナリ データを格納する Oracle の BLOB 型。Byte 型の Array に割り当てられます。 | |
サーバーの既定の文字セットに基づいて、最大 4 GB の文字データを格納する Oracle の CLOB 型。String に割り当てられます。 | |
NClob | サーバーの国別文字セットに基づいて、最大 4 GB のサイズの文字データを格納する Oracle の NCLOB データ型。String に割り当てられます。 |
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 がトランザクション内に存在する必要があります。
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 を使用してください。 |



Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


OracleLob フィールド
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 メソッド


名前 | 説明 | |
---|---|---|
![]() | CreateWaitHandle | WaitHandle オブジェクトを割り当てます。 ( Stream から継承されます。) |
![]() | Dispose | オーバーロードされます。 この Stream オブジェクトによって使用されているすべてのリソースを解放します。 ( Stream から継承されます。) |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | オーバーロードされます。 ( MarshalByRefObject から継承されます。) |

OracleLob メンバ
Oracle サーバーに格納される、LOB (Large Object Binary) データ型を表します。このクラスは継承できません。
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 から継承されます。) |


名前 | 説明 | |
---|---|---|
![]() | CreateWaitHandle | WaitHandle オブジェクトを割り当てます。 (Stream から継承されます。) |
![]() | Dispose | オーバーロードされます。 この Stream オブジェクトによって使用されているすべてのリソースを解放します。 (Stream から継承されます。) |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | オーバーロードされます。 ( MarshalByRefObject から継承されます。) |

Weblioに収録されているすべての辞書からOracleLobを検索する場合は、下記のリンクをクリックしてください。

- OracleLobのページへのリンク