OracleLob.SetLength(Int64) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
OracleLob ストリームの長さを、現在の長さより短い値に設定します。
public:
override void SetLength(long value);
public override void SetLength (long value);
override this.SetLength : int64 -> unit
Public Overrides Sub SetLength (value As Long)
パラメーター
例外
value
パラメーターで CLOB
または NCLOB
データ型に指定した値が偶数ではありません。
- または -
value
で指定したパラメーターの値が 0 未満であるか、4 GB を超えています。
操作がトランザクション内で実行されていないか、OracleLob オブジェクトが null か、または接続が閉じられています。
オブジェクトが閉じられているか、破棄されています。
Oracle エラーが発生しました。
注釈
ストリームの OracleLob 長さを増やそうとすると失敗し、Oracle サーバーから "Message: ORA-22926: specified trim length is greater than current LOB value's length" (メッセージ: ORA-22926: 指定されたトリミング長が現在の LOB 値の長さより大きい) を Oracle サーバーから返します。
ストリームは、to 関数の書き込みとシークの SetLength 両方をサポートする必要があります。
.NET Framework Data Provider for Oracle は、すべてのCLOB
データとデータを NCLOB
Unicode として処理します。 したがって、および NCLOB
データ型にアクセスするCLOB
場合は、常にバイト数を処理します。各文字は 2 バイトです。 たとえば、3 文字を含むテキストの文字列が、1 文字あたり 4 バイトの Oracle サーバーに として NCLOB
保存され、操作を実行 SetLength
する場合は、サーバーに 12 バイトとして格納されますが、文字列の長さは 6 バイトとして指定します。
を に LOB
書き込むには、SQL SELECT ステートメントで FOR UPDATE 句を使用して を取得 LOB
し、ローカル トランザクションを開始する必要があります。
注意
読み取り専用 LOB
に対する書き込み操作は成功する可能性がありますが、サーバー上の を LOB
更新しません。 ただし、この場合、 のローカル コピー LOB
が更新されます。 したがって、オブジェクトに対する後の読み取り OracleLob 操作は、書き込み操作の結果を返す可能性があります。
適用対象
.NET