備考
バッファリングを使用可能にすると、FlushBuffer
メソッドがコールされるまでLOBバッファリング・サブシステムで変更内容をバッファリングし、ネットワーク・ラウンドトリップ回数を最小に抑えます。LOBの特定の領域に少量の読取りと書込みを繰り返し実行するようなアプリケーションの場合に効果があります。
LOBバッファリングの使用には、多くの注意事項と制限があります。ここでは要約を示しますが、詳細は『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。
制限事項
バッファリングが使用可能であるときには、次のLOBメソッドを使用できません。
Append
Copy
Erase
Size
Trim
CopyFromBFILE
CopyFromFile
CopyToFile
1回の読取りまたは書込み操作は、512KBに制限されています。
バッファされた操作に関するエラー報告は、次のデータベース・アクセスまで遅延されます。
トランザクション・サポートは保証されません。エラーが発生した場合、変更内容のロールバックはユーザーが手動で行う必要があります。
トランザクション内で、バッファリング・システムをバイパスするLOB列に対して、バッファリング可能なLOBとしての更新を実行しないでください。この状況は、INSERT
文の実行で発生する可能性があります。
バッファリングして所定のLOBに書込みができるLOBオブジェクトは1つのみです。同じLOBを指している他のLOBオブジェクトがバッファリングして書き込もうとすると、エラーになります。
OraParameter
オブジェクトから取得したLOBオブジェクトを、バッファリング可能にしてOUT
パラメータにバインドすると、エラーになります。
バッファリングが可能なLOBに対してClone
メソッドを使用すると、エラーになります。
LOBの最後に直接追加することはできますが、オフセットを使用してLOBの最後を超えて書込み操作を行うと、空白の埋込み(CLOB
の場合)または0(ゼロ)の埋込み(BLOB
の場合)となり、エラーになります。
関連項目: 『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』 |