| Oracle® Data Provider for .NET開発者ガイド リリース9.2.0.4 部品番号 B13807-01 |
|
Oracle.DataAccess.Typesネームスペース(ODP.NET型)、16/19
OracleClobは、CLOBデータへの参照を持つオブジェクトです。CLOBに対して操作を実行するためのメソッドを提供します。
Object
MarshalByRefObject
Stream
OracleClob
// C# public sealed class OracleClob : Stream, ICloneable
インスタンス・メソッドではスレッド・セーフティを保証しませんが、すべてのpublic staticメソッドはスレッド・セーフです。
// C# // Example demostrates Read, Append, Search, Write and, Erase APIs // assume: A valid connection 'con'is created OracleClob oraClob = new OracleClob(con); // Read some data (in characters) char buffer = new char[1024]; int bufferOffset = 10; int amountToBeRead = 10; int charRead = oraClob.Read(buffer, bufferOffset, amountToBeRead); // Search for the 2nd occurrence of a char pattern 'oracle' // from the oraClob starting at offset 1 char[6] pattern = new char[6] { "o", "r", "a", "c", "l", "e" }; int positionFound = oraClob.Search(pattern, 1, 2); // Append 2 char to the oraClob oraClob.Append(new char[3] {"f", "o", "o"}, 1, 2); // Write 32 char, starting at buffer offset 512 char[4096] buffer = new char[4096]; ... oraClob.Write(buffer, 512, 32); // Erase 64 char of data starting at offset=1024 oraClob.Erase(1024,64); ...
ネームスペース: Oracle.DataAccess.Types
アセンブリ: Oracle.DataAccess.dll
OracleClobのメンバーを次の表に示します。
OracleClobのコンストラクタを表5-165に示します。
| コンストラクタ | 説明 |
|---|---|
|
一時 |
OracleClobのstaticフィールドを表5-166に示します。
| フィールド | 説明 |
|---|---|
|
|
OracleClobのstaticメソッドを表5-167に示します。
| メソッド | 説明 |
|---|---|
|
|
|
OracleClobのインスタンス・プロパティを表5-168に示します。
OracleClobのインスタンス・メソッドを表5-169に示します。
OracleClobのコンストラクタは、一時CLOBにバインドされたOracleClobクラスのインスタンスを作成します。
このコンストラクタは、OracleConnectionオブジェクトを使用し、一時CLOBにバインドされたOracleClobクラスのインスタンスを作成します。
このコンストラクタは、OracleConnectionオブジェクト、キャッシュ用のブール値、およびNCLOB用のブール値を使用し、一時CLOBにバインドされたOracleClobクラスのインスタンスを作成します。
このコンストラクタは、OracleConnectionオブジェクトを使用し、一時CLOBにバインドされたOracleClobクラスのインスタンスを作成します。
// C# public OracleClob(OracleConnection con);
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
接続は、アプリケーションで明示的にオープンされる必要があります。OracleClobは、暗黙的に接続をオープンしません。一時CLOBは、指定された接続を利用してCLOBデータを格納します。デフォルトでは、キャッシュを使用できません。
このコンストラクタは、OracleConnectionオブジェクト、キャッシュ用のブール値、およびNCLOB用のブール値を使用し、一時CLOBにバインドされたOracleClobクラスのインスタンスを作成します。
// C# public OracleClob(OracleConnection con, bool bCaching, bool bNCLOB);
con
OracleConnectionオブジェクト接続。
bCaching
サーバー側キャッシュが使用できるかどうかを示すフラグ。
bNCLOB
インスタンスがNCLOBである場合にtrueに、CLOBである場合にfalseに設定されるフラグ。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
接続は、アプリケーションで明示的にオープンされる必要があります。OracleClobは、暗黙的に接続をオープンしません。一時CLOBまたはNCLOBは、指定された接続を使用してCLOBデータを格納します。
OracleClobのstaticフィールドを表5-170に示します。
| フィールド | 説明 |
|---|---|
|
|
MaxSizeフィールドは、CLOBが保持できるバイト数の最大値を保持します。最大値は4,294,967,295(232 - 1)バイトです。
// C# public static readonly Int64 MaxSize = 4294967295;
このフィールドは、操作が許容される最大長(バイト)を超えるかどうかをチェックするコードで使用すると便利です。
OracleClobのstaticメソッドを表5-171に示します。
| メソッド | 説明 |
|---|---|
|
|
|
OracleClobのインスタンス・プロパティを表5-172に示します。
Streamをオーバーライドします。
このインスタンス・プロパティは、LOBストリームを読み込むことができるかどうかを示します。
// C# public override bool CanRead{get;}
LOBストリームを読み込むことができる場合、trueを返します。それ以外の場合、falseを返します。
Streamをオーバーライドします。
このインスタンス・プロパティは、順方向および逆方向のシーク操作を実行できるかどうかを示します。
// C# public override bool CanSeek{get;}
順方向および逆方向のシーク操作を実行できる場合、trueを返します。それ以外の場合、falseを返します。
Streamをオーバーライドします。
このインスタンス・プロパティは、LOBオブジェクトが書込みをサポートするかどうかを示します。
// C# public override bool CanWrite{get;}
LOBストリームを書き込むことができる場合、trueを返します。それ以外の場合、falseを返します。
このインスタンス・プロパティは、CLOBデータの取得および書込みに使用されるOracleConnectionを示します。
// C# public OracleConnection Connection {get;}
OracleConnection
ObjectDisposedException: オブジェクトがすでに破棄されています。
このインスタンス・プロパティは、CLOBが空かどうかを示します。
// C# public bool IsEmpty {get;}
bool
ObjectDisposedException: オブジェクトがすでに破棄されています。
このインスタンス・プロパティは、索引の更新を遅延させるためにCLOBがオープンされているかどうかを示します。
// C# public bool IsInChunkWriteMode{get;}
CLOBがオープンされている場合、trueを返します。それ以外の場合、falseを返します。
このインスタンス・プロパティは、OracleClobオブジェクトがNCLOBを表すかどうかを示します。
// C# public bool IsNCLOB {get;}
bool
このインスタンス・プロパティは、現在のインスタンスが一時CLOBにバインドされているかどうかを示します。
// C# public bool IsTemporary {get;}
bool
Streamをオーバーライドします。
このインスタンス・プロパティは、CLOBデータのサイズをバイトで示します。
// C# public override Int64 Length {get;}
CLOBのサイズをバイトで示すInt64
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
このインスタンス・プロパティは、読込みまたは書込み操作時にサーバーから取得または送信するバイト数の最小値を示します。
// C# public int OptimumChunkSize{get;}
取得または送信するバイト数の最小値を表す数値
ObjectDisposedException: オブジェクトがすでに破棄されています。
Streamをオーバーライドします。
このインスタンス・プロパティは、LOBストリームの現在の読込みまたは書込み位置をバイトで示します。
// C# public override Int64 Position{get; set;}
読込みまたは書込み位置を示すInt64
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
ArgumentOutOfRangeException: Positionが0より小さいです。
このインスタンス・プロパティは、CLOBまたはNCLOBの最初の文字から始まるデータを文字列として返します。
// C# public string Value{get;}
文字列
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
ArgumentOutOfRangeException: Valueが0より小さいです。
Positionの値は、このプロパティを使用しても使用または変更されません。
このプロパティによって返される文字列の最大長は2GBです。
OracleClobのインスタンス・メソッドを表5-173に示します。
このインスタンス・メソッドは、データを現在のOracleClobインスタンスに追加します。
このインスタンス・メソッドは、指定されたOracleClobオブジェクトによって参照されるCLOBデータを現在のOracleClobインスタンスに追加します。
このインスタンス・メソッドは、指定されたバイト配列バッファからCLOBの終わりに、指定されたバイト配列バッファのオフセット(バイト)から始まるデータを追加します。
このインスタンス・メソッドは、指定された文字配列バッファから現在のOracleClobインスタンスの終わりに、指定された文字バッファのオフセット(文字)から始まるデータを追加します。
このインスタンス・メソッドは、指定されたOracleClobオブジェクトによって参照されるCLOBデータを現在のOracleClobインスタンスに追加します。
// C# public void Append(OracleClob obj);
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: パラメータがオブジェクトとは異なる接続を使用しているか、OracleConnectionがオープンされていないか、またはOracleConnectionが再オープンされています。
キャラクタ・セットの変換は行われません。
指定されたオブジェクトおよび現在のインスタンスは、同じ接続、つまり同じOracleConnectionオブジェクトを使用している必要があります。
このインスタンス・メソッドは、指定されたバイト配列バッファからCLOBの終わりに、指定されたバイト配列バッファのオフセット(バイト)から始まるデータを追加します。
// C# public int Append(byte[] buffer, int offset, int count);
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
ArgumentOutOfRangeException: offsetパラメータまたはcountパラメータのいずれかが偶数ではありません。
offsetとcount両方ともCLOBおよびNCLOBに対して偶数である必要があります。これは、2バイトごとにUnicode文字を表すためです。
このインスタンス・メソッドは、指定された文字配列バッファから現在のOracleClobインスタンスの終わりに、指定された文字バッファのオフセット(文字)から始まるデータを追加します。
// C# public void Append(char[] buffer, int offset, int count);
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
// C# ... // Append 2 char to the oraClob oraClob.Append(new char[3] {"f", "o", "o"}, 1, 2); ...
このインスタンス・メソッドは、CLOBをオープンします。
// C# public void BeginChunkWrite();
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
BeginChunkWriteは、CLOBデータを操作する前にコールする必要はありません。これはパフォーマンス上の理由で提供されています。
このメソッドがコールされると、書込み操作によって列のドメイン索引またはファンクション索引が更新されることはありません。索引の更新は、EndChunkWriteがコールされた後に1回だけ発生します。
このインスタンス・メソッドは、OracleClobオブジェクトのコピーを作成します。
// C# public object Clone();
OracleClobオブジェクト
ICloneable
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
クローニングされたオブジェクトは、クローニング元のオブジェクトと同じプロパティ値を持ちます。
// C# ... //Need a proper casting for the return value when cloned OracleClob oraClob_cloned = (OracleClob) oraClob.Clone(); ...
Streamをオーバーライドします。
このインスタンス・メソッドは、現在のストリームをクローズし、それに関連付けられたリソースを解放します。
// C# public override void Close();
このインスタンス・メソッドは、現在のインスタンスによって参照されるデータと指定されたオブジェクトのデータを比較します。
// C# public int Compare(Int64 src_offset, OracleClob obj, Int64 dst_offset, Int64 amount);
src_offset
現在のインスタンスの比較開始位置(文字)。
obj
指定されたOracleClobオブジェクト。
dst_offset
指定されたOracleClobの比較開始位置(文字)。
amount
比較する文字数。
このメソッドは、次の数値を返します。
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: パラメータがオブジェクトとは異なる接続を使用しているか、OracleConnectionがオープンされていないか、またはOracleConnectionが再オープンされています。
ArgumentOutOfRangeException: src_offsetパラメータ、dst_offsetパラメータまたはamountパラメータのいずれかが0より小さいです。
比較される2つのOracleClobオブジェクトのキャラクタ・セットは、比較を意味のあるものにするため同じである必要があります。
指定されたオブジェクトおよび現在のインスタンスは、同じ接続、つまり同じOracleConnectionオブジェクトを使用している必要があります。
CopyToは、現在のインスタンスから指定されたOracleClobオブジェクトにデータをコピーします。
このインスタンス・メソッドは、現在のインスタンスから指定されたOracleClobオブジェクトにデータをコピーします。
このインスタンス・メソッドは、現在のOracleClobインスタンスから指定されたOracleClobオブジェクトに、指定された宛先オフセットを使用してデータをコピーします。
このインスタンス・メソッドは、現在のOracleClobインスタンスから指定されたOracleClobオブジェクトに、指定されたソース・オフセット、宛先オフセットおよび文字数を使用してデータをコピーします。
このインスタンス・メソッドは、現在のインスタンスから指定されたOracleClobオブジェクトにデータをコピーします。
// C# public Int64 CopyTo(OracleClob obj);
返される値は、コピーされたデータ量です。
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: この例外は、次の条件のいずれかに該当する場合にスローされます。
指定されたオブジェクトおよび現在のインスタンスは、同じ接続、つまり同じOracleConnectionオブジェクトを使用している必要があります。
このインスタンス・メソッドは、現在のOracleClobインスタンスから指定されたOracleClobオブジェクトに、指定された宛先オフセットを使用してデータをコピーします。
// C# public Int64 CopyTo(OracleClob obj, Int64 dst_offset);
返される値は、コピーされたデータ量です。
ObjectDisposedException: オブジェクトがすでに破棄されています。
ArgumentOutOfRangeException: dst_offsetが0より小さいです。
InvalidOperationException: この例外は、次の条件のいずれかに該当する場合にスローされます。
dst_offsetがOracleClobデータの終わりを超えている場合、dst_offsetと一致するまでOracleClobに空白が書き込まれます。
オフセットは0ベースです。この操作では文字の変換は実行されません。
指定されたオブジェクトおよび現在のインスタンスは、同じ接続、つまり同じOracleConnectionオブジェクトを使用している必要があります。
このインスタンス・メソッドは、現在のOracleClobインスタンスから指定されたOracleClobオブジェクトに、指定されたソース・オフセット、宛先オフセットおよび文字数を使用してデータをコピーします。
// C# public Int64 CopyTo(Int64 src_offset,OracleClob obj,Int64 dst_offset,Int64 amount);
src_offset
現在のインスタンスのオフセット(文字)。ここからデータが読み込まれます。
obj
データのコピー先となるOracleClobオブジェクト。
dst_offset
OracleClobオブジェクトのオフセット(文字)。ここにデータがコピーされます。
amount
コピーされるデータ量。
返される値は、コピーされたデータ量です。
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: パラメータがオブジェクトとは異なる接続を使用しているか、OracleConnectionがオープンされていないか、またはOracleConnectionが再オープンされています。
ArgumentOutOfRangeException: src_offsetパラメータ、dst_offsetパラメータまたはamountパラメータが0より小さいです。
dst_offsetがOracleClobデータの終わりを超えている場合、dst_offsetと一致するまでOracleClobに空白が書き込まれます。
オフセットは0ベースです。この操作では文字の変換は実行されません。
指定されたオブジェクトおよび現在のインスタンスは、同じ接続、つまり同じOracleConnectionオブジェクトを使用している必要があります。
// C# ... // Assume you have a valid connection 'con' OracleClob src_clob = new OracleClob(con); OracleClob target_clob = new OracleClob(con); // Copy 1024 chars from src_clob (begin at offset 10) to target_blob // (starting at offset 5) src_clob.CopyTo(10, target_clob, 5, 1024); ...
このインスタンス・メソッドは、このオブジェクトによって割り当てられたリソースを解放します。
public void Dispose();
IDisposable
オブジェクトは、破棄後に再利用することはできません。引き続きアクセスできるプロパティもありますが、その値は保証されない場合があります。リソースは解放されているため、メソッドのコールにより例外が発生することがあります。
このインスタンス・メソッドは、現在のOracleClobインスタンスによって参照されるCLOBをクローズします。
// C# public void EndChunkWrite();
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
索引の更新は、BeginChunkWriteメソッドによって書込み操作が遅延されるとすぐに発生します。
Eraseは、データの一部またはすべてを消去します。
このインスタンス・メソッドは、すべてのデータを消去します。
このインスタンス・メソッドは、指定されたオフセットから始まる指定されたデータ量(文字)を0バイトの充填文字(文字)で置換します。
このインスタンス・メソッドは、すべてのデータを消去します。
// C# public Int64 Erase();
消去された文字数
このインスタンス・メソッドは、指定されたオフセットから始まる指定されたデータ量(文字)を0バイトの充填文字(文字)で置換します。
// C# public Int64 Erase(Int64 offset, Int64 amount);
消去された実際の文字数
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
ArgumentOutOfRangeException: offsetパラメータまたはamountパラメータが0より小さいです。
Objectをオーバーライドします。
このメソッドは、現在のインスタンスのハッシュ・コードを返します。
// C# public override int GetHashCode();
ハッシュ・コードを表すint
このインスタンス・メソッドは、2つのOracleClobによって参照されるLOBデータを比較します。
// C# public bool IsEqual(OracleClob obj);
現在のOracleClobと指定されたOracleClobが同じLOBを参照している場合、trueを返します。それ以外の場合、falseを返します。
このメソッドは、2つのOracleClobオブジェクトが==またはEquals()に対してfalseを返す場合でもtrueを返すことができます。これは、2つの異なるOracleClobインスタンスが同じLOBを参照できるためです。
指定されたオブジェクトおよび現在のインスタンスは、同じ接続、つまり同じOracleConnectionオブジェクトを使用している必要があります。
Readは、指定されたデータ量を現在のインスタンスから読み込み、配列バッファに移入します。
このインスタンス・メソッドは、指定されたバイト数を現在のインスタンスから読み込み、バイト配列バッファに移入します。
このインスタンス・メソッドは、指定された文字数を現在のインスタンスから読み込み、文字配列バッファに移入します。
Streamをオーバーライドします。
このインスタンス・メソッドは、指定されたバイト数を現在のインスタンスから読み込み、バイト配列バッファに移入します。
// C# public override int Read(byte [ ] buffer, int offset, int count);
CLOBから読み込まれたバイト数
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
offsetとcount両方ともCLOBおよびNCLOBに対して偶数である必要があります。これは、2バイトごとにUnicode文字を表すためです。
LOBデータは、Positionプロパティによって指定された位置から読込みが開始されます。このプロパティも偶数である必要があります。
OracleClobは、ストリームの終わりに達していない場合でも、要求されたバイト数より少ないバイト数を返すことができます。
このインスタンス・メソッドは、指定された文字数を現在のインスタンスから読み込み、文字配列バッファに移入します。
// C# public int Read(char[ ] buffer, int offset, int count);
返される値は、CLOBから読み込まれた文字数を示します。
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
ArgumentOutOfRangeException: この例外は、次の条件のいずれかに該当する場合にスローされます。
すべてのCLOBデータおよびNCLOBデータをUnicodeとして処理します。
LOBデータは、Positionプロパティによって指定された位置から読込みが開始されます。
// C# ... // Read some data (in characters) char buffer = new char[1024]; int bufferOffset = 10; int amountToBeRead = 10; int charRead = oraClob.Read(buffer, bufferOffset, amountToBeRead); ...
Searchは、OracleClobの現在のインスタンスで文字パターンを検索します。
このインスタンス・メソッドは、OracleClobの現在のインスタンスで、バイト配列で表される文字パターンを検索します。
このインスタンス・メソッドは、OracleClobの現在のインスタンスで文字パターンを検索します。
このインスタンス・メソッドは、OracleClobの現在のインスタンスで、バイト配列で表される文字パターンを検索します。
// C# public int Search(byte[ ] val, Int64 offset, Int64 nth);
val
Unicodeバイト配列。
offset
0ベースのオフセット(文字)。ここからOracleClobの検索が開始されます。
nth
一致の特定の出現(1ベース)。これに対して絶対オフセット(文字)が返されます。
一致のnth番目の出現に対する、一致パターンの開始の絶対オフセット(文字)を返します。それ以外の場合、0を返します。
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
ArgumentOutOfRangeException: この例外は、次の条件のいずれかに該当する場合にスローされます。
byte[ ]は、検索が行われる前にUnicodeに変換されます。
検索パターンの制限は16383バイトです。
このインスタンス・メソッドは、OracleClobの現在のインスタンスで文字パターンを検索します。
// C# public Int64 Search(char [ ] val, Int64 offset, Int64 nth);
val
検索されるUnicode文字列。
offset
0ベースのオフセット(文字)。ここからOracleClobの検索が開始されます。
nth
一致の特定の出現(1ベース)。これに対して絶対オフセット(文字)が返されます。
一致のnth番目の出現に対する、一致パターンの開始の絶対オフセット(文字)を返します。それ以外の場合、0を返します。
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
ArgumentOutOfRangeException: この例外は、次の条件のいずれかに該当する場合にスローされます。
offsetが0より小さい場合
nthが0以下の場合
val.Lengthが16383より大きい場合
nthがOracleClob.MaxSize以上の場合
offsetがOracleClob.MaxSize以上の場合
検索パターンの制限は16383バイトです。
// C# .. // Search for the 2nd occurrence of a char pattern 'oracle' // from the oraClob starting at offset 1 char[6] pattern = new char[6] { "o", "r", "a", "c", "l", "e" }; int positionFound = oraClob.Search(pattern, 1, 2); ...
Streamをオーバーライドします。
このインスタンス・メソッドは、現在のLOBストリームに位置を設定します。
// C# public override Int64(Int64 offset, SeekOrigin origin);
位置を示すInt64を返します。
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
offsetが負の場合、新しい位置はoriginによって指定された位置よりoffsetによって指定された文字数分だけ前に位置します。
offsetが0の場合、新しい位置はoriginによって指定された位置です。
offsetが正の場合、新しい位置はoriginによって指定された位置よりoffsetによって指定された文字数分だけ後に位置します。
SeekOrigin.Beginはストリームの開始を指定します。
SeekOrigin.Currentはストリーム内の現在の位置を指定します。
SeekOrigin.Endはストリームの終了を指定します。
Streamをオーバーライドします。
このインスタンス・メソッドは、指定された長さ(文字)にCLOB値を切り捨てます。
// C# public override void SetLength(Int64 newlen);
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
ArgumentOutOfRangeException: newlenパラメータが0より大きいです。
このインスタンス・メソッドは、指定された配列バッファのデータをOracleClobに書き込みます。
このインスタンス・メソッドは、指定されたバイト配列バッファのデータをOracleClobに書き込みます。
このインスタンス・メソッドは、指定された文字配列バッファのデータをOracleClobに書き込みます。
Streamをオーバーライドします。
このインスタンス・メソッドは、指定されたバイト配列バッファのデータをOracleClobに書き込みます。
// C# public override void Write(byte[ ] buffer, int offset, int count);
buffer
Unicode文字列を表すバイト配列バッファ。
offset
オフセット(バイト)。ここからバッファが読み込まれます。
count
OracleClobに書き込まれるバッファのデータ量(バイト)。
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
ArgumentOutOfRangeException: この例外は、次の条件のいずれかに該当する場合にスローされます。
offsetまたはcountが0より小さい場合
offsetがbuffer.Length以上の場合
offsetおよびcountの両方がbuffer.Lengthより大きい場合
offset、countまたはPositionが偶数ではない場合
offsetとcount両方ともCLOBおよびNCLOBに対して偶数である必要があります。これは、2バイトごとにUnicode文字を表すためです。
LOBデータは、Positionプロパティによって指定された位置から読込みが開始されます。Positionプロパティは偶数である必要があります。
必要に応じて、クライアント・キャラクタ・セットからデータベース・キャラクタ・セットへの適切なデータ変換が実行されます。
このインスタンス・メソッドは、指定された文字配列バッファのデータをOracleClobに書き込みます。
// C# public void Write(char[ ] buffer, int offset, int count);
buffer
OracleClobに書き込まれる文字配列バッファ。
offset
オフセット(文字)。ここからバッファが読み込まれます。
count
OracleClobに書き込まれる、バッファのデータ量(文字)。
ObjectDisposedException: オブジェクトがすでに破棄されています。
InvalidOperationException: OracleConnectionがオープンされていないか、オブジェクトの存続期間中にクローズされました。
ArgumentOutOfRangeException: この例外は、次の条件のいずれかに該当する場合にスローされます。
offsetまたはcountが0より小さい場合
offsetがbuffer.Length以上の場合
offsetおよびcountの両方がbuffer.Lengthより大きい場合
Positionが偶数ではない場合
すべてのCLOBデータおよびNCLOBデータをUnicodeとして処理します。
LOBデータは、Positionプロパティによって指定された位置から読込みが開始されます。
必要に応じて、クライアント・キャラクタ・セットからデータベース・キャラクタ・セットへの適切なデータ変換が実行されます。
// C# ... // Begin ChunkWrite to improve performance // Index updates occur only once after EndChunkWrite oraClob.BeginChunkWrite(); // Set the write from the beginning; oraClob.Position = 0; // Write to the oraClob in chunks of 10, each 1024 char for ( int i=0; i<10; i++ ) { char[1024] c; c = c[0]= a; // some new value to be written oraClob.Write(c, 0, c.Length); } oraClob.EndChunkWrite(); ...
|
|
![]() Copyright © 2002, 2003 Oracle Corporation. All Rights Reserved. |
|