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 メソッド呼び出します。

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

OracleLob myLob = OracleLob.Null;

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

If(myLob == OracleLob.Null)

NULLLOB は、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 名前空間


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

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

辞書ショートカット

すべての辞書の索引

「OracleLob クラス」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS