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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


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

- OracleLob クラスのページへのリンク