OracleLob.SetLength メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > OracleLob.SetLength メソッドの意味・解説 

OracleLob.SetLength メソッド

OracleLob ストリームの長さを、現在の長さより短い値に設定します。

名前空間: System.Data.OracleClient
アセンブリ: System.Data.OracleClient (system.data.oracleclient.dll 内)
構文構文

Public Overrides Sub SetLength
 ( _
    value As Long _
)
Dim instance As OracleLob
Dim value As Long

instance.SetLength(value)
public void SetLength (
    long value
)

パラメータ

value

現在の OracleLob ストリームの希望の長さ (バイト数)。CLOB 型および NCLOB 型の場合、これは偶数である必要があります。

例外例外
例外の種類条件

ArgumentOutOfRangeException

value パラメータで CLOB または NCLOB データ型に指定した値が偶数ではありません。

または

value で指定したパラメータの値が 0 未満であるか、4 GB を超えています。

InvalidOperationException

操作がトランザクション内で実行されていないか、OracleLob オブジェクトが null か、または接続が閉じられています。

ObjectDisposedException

オブジェクトが閉じられているか、破棄されています。

OracleException

Oracle エラーが発生しました。

解説解説

OracleLob ストリームの長さを増やそうとすると失敗し、Oracle サーバーから "Message: ORA-22926: 指定された切り捨ての長さが現行の LOB 値の長さを超えています。" が返されます。

SetLength が機能するためには、ストリームが書き込みとシークの両方をサポートしていることが必要です。

.NET Framework Oracle 用データ プロバイダは、すべての CLOB データおよび NCLOB データを Unicode として処理します。したがって、CLOB 型および NCLOB 型では 1 文字が 2 バイトとなるため、これらにアクセスするときは常に複数のバイトを扱うことになります。たとえば、3 文字から成る文字列が、1 文字が 4 バイトの文字セットを使用している Oracle サーバーに NCLOB として保存されていて、SetLength 操作を実行する場合、文字列はサーバーに 12 バイトとして格納されていますが、文字列の長さは 6 バイトを指定します。

LOB に書き込むには、SQL SELECT ステートメントで FOR UPDATE 句を使用して LOB を取得する必要があり、さらにローカル トランザクションが開始している必要があります。

メモメモ

読み取り専用の LOB に対する書き込み操作が成功する可能性がありますが、サーバー上の LOB は更新されません。ただし、この場合、LOB のローカル コピーは更新されます。したがって、OracleLob オブジェクトに対するその後の読み取り操作では、書き込み操作の結果が返される可能性があります。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
OracleLob クラス
OracleLob メンバ
System.Data.OracleClient 名前空間



英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

OracleLob.SetLength メソッドのお隣キーワード

   

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



OracleLob.SetLength メソッドのページの著作権

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

©2026 GRAS Group, Inc.RSS