OracleLob.SetLength メソッド
アセンブリ: System.Data.OracleClient (system.data.oracleclient.dll 内)



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 オブジェクトに対するその後の読み取り操作では、書き込み操作の結果が返される可能性があります。 |

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.SetLength メソッドを検索する場合は、下記のリンクをクリックしてください。

- OracleLob.SetLength メソッドのページへのリンク