表E-4は、この項で説明している非推奨のLOB関数を示しています。
表E-4 非推奨のLOB関数
関数 | 用途 |
---|---|
LOBの一部または全部を別のLOBにコピーします。 |
|
LOBの一部を消去します。 |
|
LOBの長さを取得します。 |
|
|
|
LOBの一部を読み取ります。 |
|
LOBを切り捨てます。 |
|
LOBに書き込みます。 |
|
LOBの末尾からデータを書き込みます。 |
この機能は、Oracle Database 11gリリース2 (11.2)より前のリリースでは非推奨です。
用途
LOB値の全体または一部を別のLOB値にコピーします。この関数は非推奨です。OCILobCopy2()を使用してください。
構文
sword OCILobCopy ( OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *dst_locp, OCILobLocator *src_locp, ub4 amount, ub4 dst_offset, ub4 src_offset );
パラメータ
この機能は、Oracle Database 11gリリース2 (11.2)より前のリリースでは非推奨です。
用途
内部LOBデータの一部を指定のオフセットの位置から消去します。この関数は非推奨です。OCILobErase2()
を使用してください。
構文
sword OCILobErase ( OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, ub4 *amount, ub4 offset );
パラメータ
この機能は、Oracle Database 11gリリース2 (11.2)より前のリリースでは非推奨です。
用途
LOBの長さを取得します。この関数は非推奨です。OCILobGetLength2()
を使用してください。
構文
sword OCILobGetLength ( OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, ub4 *lenp );
パラメータ
この機能は、Oracle Database 11gリリース2 (11.2)より前のリリースでは非推奨です。
用途
ファイルの全体または一部を内部LOBにロードおよびコピーします。この関数は非推奨です。OCILobLoadFromFile2()
を使用してください。
構文
sword OCILobLoadFromFile ( OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *dst_locp, OCILobLocator *src_locp, ub4 amount, ub4 dst_offset, ub4 src_offset );
パラメータ
この機能は、Oracle Database 11gリリース2 (11.2)より前のリリースでは非推奨です。
用途
LOBまたはBFILE
の一部をコールの指定どおりにバッファに読み取ります。この関数は非推奨です。OCILobRead2()
を使用してください。
構文
sword OCILobRead ( OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, ub4 *amtp, ub4 offset, void *bufp, ub4 bufl, void *ctxp, OCICallbackLobRead (cbfp) ( void *ctxp, const void *bufp, ub4 len, ub1 piece ) ub2 csid, ub1 csfrm );
パラメータ
サービス・コンテキスト・ハンドルです。
エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。
一意にLOBまたはBFILE
を参照するLOBまたはBFILE
ロケータです。このロケータは、svchp
に指定したサーバーから取得されたロケータにしてください。
表E-5に示すように、amtp
の値は、バイト数または文字数のいずれかで表される量です。
表E-5 OCILobRead()のamtpの文字数またはバイト数
LOBまたはBFILE | 入力 | 固定幅のクライアント側キャラクタ・セットによる出力 | 可変幅のクライアント側キャラクタ・セットによる出力 |
---|---|---|---|
|
バイト |
バイト |
バイト |
|
文字 |
文字 |
バイト脚注 1 |
脚注 1
入力量は、サーバー側のCLOB
またはNCLOB
から読み取る文字数を示します。出力量は、バッファbufp
に読み取られたバイト数を示します。
次の場合、パラメータamtp
は読み取られたデータの総量です。
データがストリーム・モードで読み取られない場合(1ピースのみ読み取られ、ポーリングまたはコールバックは行われません)。
データがコールバックによってストリーム・モードで読み取られる場合
データがポーリングを使用してストリーム・モードで読み取られる場合、パラメータamtp
は読み取られた最後のピースの長さです。
読み取られる量がバッファの長さより多い場合、ストリーム・モードでのLOBの読取りは、入力オフセットからLOBの終わりまでか、指定されたバイト数の読取りまで、いずれか先に達するところまで行われます。入力時にこの値が0 (ゼロ)の場合は、入力オフセットからLOBの末尾までストリーム・モードでデータが読み取られます。
ストリーム・モード(ポーリングまたはコールバックのいずれかで実行)の場合、LOB値は入力オフセットから連続して読み取られます。
データがピース単位で読み取られる場合、amtp
パラメータには常に読み取られた各ピースの長さが含まれます。
コールバック関数が定義されている場合は、パイプからbufl
バイトが読み取られるたびにそのコールバック関数が呼び出されます。各ピースがbufp
に書き込まれます。
コールバック関数が定義されていない場合は、OCI_NEED_DATA
エラー・コードが戻ります。アプリケーションでは、OCI_NEED_DATA
エラー・コードが戻らなくなるまで何度もOCILobRead()
をコールし、LOBのピースを読み取る必要があります。ピースのサイズを変えながら複数の場所を読み取る場合は、コールごとにバッファ・ポインタと長さを変えることができます。
入力時、これはLOB値の先頭からの絶対オフセットです。文字LOB (CLOB
、NCLOB
)ではLOBの先頭からの文字数であり、バイナリLOBまたはBFILE
ではバイト数です。先頭位置は1です。
ポーリングまたはコールバックによるストリームを使用する場合は、最初のコールでオフセットを指定します。後続のポーリング・コールでは、offsetパラメータは無視されます。コールバックを使用する場合、offsetパラメータはありません。
ピースの読取り先バッファへのポインタです。bufl
のメモリー長が割り当てられるとみなされます。
オクテットで示したバッファの長さです。bufl
パラメータがバイト数で指定され、amtp
パラメータが文字で指定されている場合、この値は、CLOB
およびNCLOB
のamtp
値(csfrm
=SQLCS_NCHAR
)とは異なります。
コールバック関数用のコンテキスト・ポインタです。NULL
にできます。
各ピースに対してコールされるように登録できるコールバックです。これがNULL
の場合は、ピースごとにOCI_NEED_DATA
が戻ります。
コールバック関数は、OCI_CONTINUE
を戻して読取りを続行する必要があります。これ以外のエラー・コードが戻った場合、LOBの読取りは終了します。
コールバック関数用のコンテキストです。NULL
にできます。
ピース用のバッファ・ポインタです。
bufp
におけるカレント・ピースのバイト長です。
ピースは、OCI_FIRST_PIECE
、OCI_NEXT_PIECE
またはOCI_LAST_PIECE
です。
バッファ・データのキャラクタ・セットIDです。この値が0 (ゼロ)の場合は、csfrm
の値に応じて、csid
にクライアントのNLS_LANG
値またはNLS_CHAR
値が設定されます。サーバーとクライアントの設定が同一である場合を除き、サーバーのキャラクタ・セットとはみなされません。
バッファ・データのキャラクタ・セット・フォームです。csfrm
パラメータは、LOBの型と一貫している必要があります。
csfrm
パラメータは、0 (ゼロ)以外の次の2つの値をとることができます。
SQLCS_IMPLICIT
- データベース・キャラクタ・セットID
SQLCS_NCHAR
- NCHARキャラクタ・セットID
デフォルト値はSQLCS_IMPLICIT
です。csfrm
が指定されていない場合は、デフォルトが使用されます。
コメント
LOBまたはBFILE
の一部をコールの指定どおりにバッファに読み取ります。NULL
属性のLOBまたはBFILE
から読み取るとエラーになります。
注意:
LOBの読取りまたは書込みを行うときは、ロケータのフォームと一致するキャラクタ・セット・フォーム(csfrm
)を指定します。
BFILE
の場合は、オペレーティング・システム・ファイルがサーバー上に存在しており、それらのファイルは、入力ロケータを使用してOCILobFileOpen()またはOCILobOpen()によってオープンされている必要があります。オペレーティング・システム・ファイルの読取り権限がOracle Databaseにあること、およびディレクトリ・オブジェクトの読取り許可がユーザーにあることが必要です。
OCILobRead()
に対してポーリング・モードを使用するとき、最初のコールではoffset
およびamtp
の値を指定する必要がありますが、その後のOCILobRead()
のポーリング・コールではこれらの値を指定する必要はありません。
LOBがBLOB
の場合、csid
パラメータおよびcsfrm
パラメータは無視されます。
注意:
OCILobRead()
操作を終了して文ハンドルを解放するには、OCIBreak()コールを使用します。
次のルールは、CLOB
およびNCLOB
のクライアント側可変幅キャラクタ・セットに適用されます。
ポーリング・モードを使用する場合は、最初のOCILobRead()
コールでamtp
パラメータとoffset
パラメータのみ指定してください。後続のポーリング・コールでは、これらのパラメータは無視されます。
コールバックを使用する場合、len
パラメータはコールバックへの入力で、バッファ内で格納されたバイト数を示します。バッファの空き領域を確認するため、コールバック処理中にlen
パラメータをチェックします。
次のルールは、CLOB
およびNCLOB
のクライアント側の固定幅キャラクタ・セットおよびサーバー側の可変幅キャラクタ・セットに適用されます。
CLOB
値またはNCLOB
値を読み取る場合は、OCILobRead()
をコールするたびにamtp
パラメータを参照し、バッファに格納された量を確認します。戻り値が文字数の場合(クライアント側のキャラクタ・セットが固定幅の場合)は、この値をバイトに変換して、バッファに格納された量を判断します。コールバックを使用する場合は、常にlen
パラメータをチェックしてバッファに格納された量を確認します。この値は、常にバイト単位です。
UTF-16形式でデータを読み取るには、csid
パラメータをOCI_UTF16ID
に設定します。csid
パラメータが設定された場合は、このパラメータによって環境変数NLS_LANG
が上書きされます。
関連項目:
Unicode形式の追加情報は、「OCIでのPL/SQL REF CURSORおよびNESTED TABLE」を参照してください
BFILE
の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください
LOBの読取りおよび書込み方法を示したコード例については、Oracle Databaseインストレーションに含まれているデモ・プログラムを参照してください。
ピース単位のOCI操作の一般情報は、「OCIでのランタイム・データ割当てとピース単位操作」を参照してください
この機能は、Oracle Database 11gリリース2 (11.2)より前のリリースでは非推奨です。
用途
LOB値を短い長さに切り捨てます。この関数は非推奨です。OCILobTrim2()を使用してください。
構文
sword OCILobTrim ( OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, ub4 newlen );
パラメータ
この機能は、Oracle Database 11gリリース2 (11.2)より前のリリースでは非推奨です。
用途
バッファをLOBに書き込みます。この関数は非推奨です。OCILobWrite2()
を使用してください。
構文
sword OCILobWrite ( OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, ub4 *amtp, ub4 offset, void *bufp, ub4 buflen, ub1 piece, void *ctxp, OCICallbackLobWrite (cbfp) ( void *ctxp, void *bufp, ub4 *lenp, ub1 *piecep ) ub2 csid, ub1 csfrm );
パラメータ
サービス・コンテキスト・ハンドルです。
エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。
一意にLOBを参照する内部LOBロケータです。このロケータは、svchp
に指定したサーバーから取得されたロケータにしてください。
表E-6に示すように、amtp
の値は、バイト数または文字数のいずれかで表される量です。
表E-6 OCILobWrite()のamtpの文字数またはバイト数
LOBまたはBFILE | 固定幅のクライアント側キャラクタ・セットによる入力 | 可変幅のクライアント側キャラクタ・セットによる入力 | 出力 |
---|---|---|---|
|
バイト |
バイト |
バイト |
|
文字 |
バイト脚注 2 |
文字 |
脚注 2
入力量は、ユーザーがLOBに書き込むデータのバイト数であり、bufp
内のバイト数ではありません。これはbuflen
で指定します。データがピース単位で書き込まれる場合、書き込むバイト量はbuflen
より大きくなることがあります。出力量は、サーバー側のCLOB
またはNCLOB
に書き込まれた文字数を表します。
これは、常にNULL
以外のポインタにする必要があります。EOFまでの書込みを指定する場合は、変数を宣言してゼロを設定し、そのアドレスをこのパラメータに渡します。
入力時に量が指定されていて、データがピース単位で書き込まれる場合、パラメータamtp
にはコール終了時(最後のピースが書き込まれた時点)に各ピースの長さの合計が格納され、書込み途中は未定義になります。ピース単位の読取りとは異なることに注意してください。指定された量がサーバーに送信されない場合は、エラーが戻されます。
amtp
が0 (ゼロ)の場合は、ストリーム・モードが使用され、ユーザーがOCI_LAST_PIECE
を指定するまでデータが書き込まれます。
入力時、これはLOB値の先頭からの絶対オフセットです。文字LOBではLOBの先頭からの文字数であり、バイナリLOBではバイト数です。先頭位置は1です。
ポーリングまたはコールバックによるストリームを使用する場合は、最初のコールでオフセットを指定します。後続のポーリング・コールでは、offsetパラメータは無視されます。コールバックを使用する場合、offsetパラメータはありません。
ピースの書込み元バッファへのポインタです。バッファ内のデータの長さは、buflen
で渡された値であると想定しています。ポーリング・メソッドを使用してピース単位でデータが書き込まれている場合でも、bufp
にはこのコール起動時のLOBの最初のピースを含める必要があります。コールバックを指定した場合は、bufp
を使用してデータを指定しないでください。指定した場合、エラーが発生します。
バッファ内のデータの長さ(バイト数)です。buflen
パラメータがバイト数で指定され、amtp
パラメータが文字数で指定されている場合、この値は、CLOB
およびNCLOB
のamtp
値とは異なります。
注意:
このパラメータは8ビット(1バイト)を仮定します。現行のオペレーティング・システムでこれより長いバイトを使用している場合は、buflen
の値を必要に応じて調整する必要があります。
書込み中のバッファのピースです。このパラメータのデフォルト値は、バッファが単独のピースとして書き込まれることを示すOCI_ONE_PIECE
です。ピース単位またはコールバック・モードで可能な他の値としては、OCI_FIRST_PIECE
、OCI_NEXT_PIECE
およびOCI_LAST_PIECE
があります。
コールバック関数用のコンテキストです。NULL
にできます。
ピース単位書込みで各ピースに対してコールされるように登録できるコールバックです。これがNULL
の場合は、標準ポーリング・メソッドが使用されます。
コールバック関数は、OCI_CONTINUE
を戻して書込みを続行する必要があります。これ以外のエラー・コードが戻った場合、LOBの書込みは終了します。コールバックは、次のパラメータを取ります。
コールバック関数用のコンテキストです。NULL
にできます。
ピース用のバッファ・ポインタです。このパラメータは、OCILobWrite()
ルーチンに入力として渡されるbufp
と同じです。
buffer (IN)内のデータのバイト数、およびbufp
(OUT)内のカレント・ピースのバイト数です。
ピースはOCI_NEXT_PIECE
またはOCI_LAST_PIECE
です。
バッファ内のデータのキャラクタ・セットIDです。この値が0 (ゼロ)の場合は、csfrm
の値に応じて、csid
にクライアントのNLS_LANG
値またはNLS_CHAR
値が設定されます。
バッファ・データのキャラクタ・セット・フォームです。csfrm
パラメータは、LOBの型と一貫している必要があります。
csfrm
パラメータは、0 (ゼロ)以外の次の2つの値をとることができます。
SQLCS_IMPLICIT
- データベース・キャラクタ・セットID
SQLCS_NCHAR
- NCHAR
キャラクタ・セットID
デフォルト値はSQLCS_IMPLICIT
です。
コメント
バッファを指定どおりに内部LOBに書き込みます。LOBにデータが存在する場合は、バッファに格納されたデータによって上書きされます。バッファは、このコールによって単独のピースとしてLOBに書き込むことも、コールバックまたは標準ポーリング・メソッドを使用してピース単位で提供することもできます。
注意:
LOBの読取りまたは書込みを行うときは、ロケータのフォームと一致するキャラクタ・セット・フォーム(csfrm
)を指定します。
OCILobWrite()
に対してポーリング・モードを使用するとき、最初のコールではoffset
およびamtp
の値を指定する必要がありますが、その後のOCILobWrite()
のポーリング・コールではこれらの値を指定する必要はありません。
piece
パラメータの値がOCI_FIRST_PIECE
である場合、データによっては、コールバックまたはポーリングを介して提供される必要があります。
コールバック関数がcbfp
パラメータに定義されている場合は、パイプに1ピースが書き込まれるとこのコールバック関数が呼び出され、次のピースが取得されます。各ピースがbufp
から書き込まれます。コールバック関数が定義されていない場合、OCILobWrite()
は、OCI_NEED_DATA
エラー・コードを戻します。LOBのピースの書込みを続けるには、アプリケーションでOCILobWrite()
を再度コールする必要があります。このモードでは、ピースが別々のサイズで複数の場所に読み取られる場合、コールごとにバッファ・ポインタと長さを変えることができます。
piece
パラメータの値がOCI_LAST_PIECE
のときは、ポーリングまたはコールバック方式が使用されているかどうかに関係なく、ピース単位書込み操作は終了します。
(どの入力方法を使用した場合も) Oracle Databaseに渡されるデータの量が、amtp
パラメータに指定された量より少ない場合は、ORA-22993エラーが戻されます。
この関数は内部LOBでのみ有効です。BFILE
は読取り専用のため、取り扱えません。LOBがBLOB
の場合、csid
パラメータおよびcsfrm
パラメータは無視されます。
クライアント側のキャラクタ・セットが可変幅の場合、CLOB
およびNCLOB
の入力量はバイト数で、出力量は文字数で表されます。入力量は、ユーザーがLOBに書き込むデータのバイト数であり、bufp
内のバイト数ではありません。これはbuflen
で指定します。データがピース単位で書き込まれる場合、書き込むバイト量はbuflen
より大きくなることがあります。出力量は、サーバー側のCLOB
またはNCLOB
に書き込まれた文字数を表します。
UTF-16形式でデータを書き込むには、csid
パラメータをOCI_UTF16ID
に設定します。csid
パラメータが設定された場合は、このパラメータによって環境変数NLS_LANG
が上書きされます。
このLOB操作をオープン・コールまたはクローズ・コールで囲む必要はありません。この操作を実行する前にLOBをオープンしていない場合、LOB列のファンクション索引とドメイン索引はこのコール時に更新されます。この操作を実行する前にLOBをオープンしている場合は、トランザクションをコミットまたはロールバックする前に、そのLOBをクローズする必要があります。内部LOBをクローズすると、LOB列のファンクション索引とドメイン索引が更新されます。
LOB操作をオープンAPIまたはクローズAPIで囲んでいない場合、ファンクション索引とドメイン索引は、LOBに書き込むたびに更新されます。これによって、パフォーマンスが低下する可能性があります。ファンクション索引とドメイン索引がある場合は、LOBへの書込み操作をオープン文またはクローズ文内に含めることをお薦めします。
関連項目:
Unicode形式の追加情報は、「OCIでのPL/SQL REF CURSORおよびNESTED TABLE」を参照してください
LOBの読取りおよび書込み方法を示したコード例については、Oracle Databaseインストレーションに含まれているデモ・プログラムを参照してください。
ピース単位のOCI操作の一般情報は、「OCIでのランタイム・データ割当てとピース単位操作」を参照してください
この機能は、Oracle Database 11gリリース2 (11.2)より前のリリースでは非推奨です。
用途
LOBの末尾からデータの書込みを開始します。この関数は非推奨です。OCILobWriteAppend2()を使用してください。
構文
sword OCILobWriteAppend ( OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, ub4 *amtp, void *bufp, ub4 buflen, ub1 piece, void *ctxp, OCICallbackLobWrite (cbfp) ( void *ctxp, void *bufp, ub4 *lenp, ub1 *piecep ) ub2 csid, ub1 csfrm );
パラメータ
サービス・コンテキスト・ハンドルです。
エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。
一意にLOBを参照する内部LOBロケータです。
表E-7に示すように、amtp
の値は、バイト数または文字数のいずれかで表される量です。
表E-7 OCILobWriteAppend()のamtpの文字数またはバイト数
LOBまたはBFILE | 固定幅のクライアント側キャラクタ・セットによる入力 | 可変幅のクライアント側キャラクタ・セットによる入力 | 出力 |
---|---|---|---|
|
バイト |
バイト |
バイト |
|
文字 |
バイト脚注 3 |
文字 |
脚注 3
入力量は、ユーザーがLOBに書き込むデータのバイト数であり、bufp
内のバイト数ではありません。これはbuflen
で指定します。データがピース単位で書き込まれる場合、書き込むバイト量はbuflen
より大きくなることがあります。出力量は、サーバー側のCLOB
またはNCLOB
に書き込まれた文字数を表します。
入力時に量が指定されていて、データがピース単位で書き込まれる場合、パラメータamtp
にはコール終了時(最後のピースが書き込まれた時点)に各ピースの長さの合計が格納され、書込み途中は未定義になります。(ピース単位の読取りとは異なることに注意してください)。指定された量がサーバーに送信されない場合は、エラーが戻されます。amtp
が0 (ゼロ)の場合は、ストリーム・モードが使用され、ユーザーがOCI_LAST_PIECE
を指定するまでデータが書き込まれます。
クライアント側のキャラクタ・セットが可変幅の場合、CLOB
またはNCLOB
の入力量は文字ではなくバイトで表されます。
ピースの書込み元バッファへのポインタです。バッファ内のデータの長さは、buflen
で渡された値であると想定しています。ピース単位でデータが書き込まれている場合でも、bufp
にはこのコール起動時のLOBの最初のピースを含める必要があります。コールバックを指定した場合は、bufpを使用してデータを指定しないでください。指定した場合、エラーが発生します。
バッファ内のデータの長さ(バイト数)です。このパラメータは8ビット(1バイト)を仮定します。現行のオペレーティング・システムでこれより長いバイトを使用している場合は、buflen
の値を必要に応じて調整する必要があります。
書込み中のバッファのピースです。このパラメータのデフォルト値は、バッファが単独のピースとして書き込まれることを示すOCI_ONE_PIECE
です。ピース単位またはコールバック・モードで可能な他の値としては、OCI_FIRST_PIECE
、OCI_NEXT_PIECE
およびOCI_LAST_PIECE
があります。
コールバック関数用のコンテキストです。NULL
にできます。
ピース単位書込みで各ピースに対してコールされるように登録できるコールバックです。これがNULL
の場合は、標準ポーリング・メソッドが使用されます。コールバック関数は、OCI_CONTINUE
を戻して書込みを続行する必要があります。これ以外のエラー・コードが戻った場合、LOBの書込みは終了します。コールバックは、次のパラメータを取ります。
コールバック関数用のコンテキストです。NULL
にできます。
ピース用のバッファ・ポインタです。
buffer (IN)内のデータのバイト数、およびbufp
(OUT)内のカレント・ピースのバイト数です。
ピースはOCI_NEXT_PIECE
またはOCI_LAST_PIECE
です。
バッファ・データのキャラクタ・セットIDです。
バッファ・データのキャラクタ・セット・フォームです。
csfrm
パラメータは、0 (ゼロ)以外の次の2つの値をとることができます。
SQLCS_IMPLICIT
- データベース・キャラクタ・セットID
SQLCS_NCHAR
- NCHAR
キャラクタ・セットID
デフォルト値はSQLCS_IMPLICIT
です。
コメント
バッファは、このコールによって単独のピースとしてLOBに書き込むことも、コールバックまたは標準ポーリング・メソッドを使用してピース単位で提供することもできます。pieceパラメータの値がOCI_FIRST_PIECE
である場合、データによっては、コールバックまたはポーリングを介して提供される必要があります。コールバック関数がcbfp
パラメータに定義されている場合は、パイプに1ピースが書き込まれるとこのコールバック関数が呼び出され、次のピースが取得されます。各ピースがbufp
から書き込まれます。コールバック関数が定義されていない場合、OCILobWriteAppend()
は、OCI_NEED_DATA
エラー・コードを戻します。
LOBのピースの書込みを続けるには、アプリケーションでOCILobWriteAppend()
を再度コールする必要があります。このモードでは、ピースが別々のサイズで複数の場所に読み取られる場合、コールごとにバッファ・ポインタと長さを変えることができます。pieceパラメータの値がOCI_LAST_PIECE
のときは、ピース単位の書込みは終了します。
LOBバッファリングが有効な場合、OCILobWriteAppend()
はサポートされません。
LOBがBLOB
の場合、csid
パラメータおよびcsfrm
パラメータは無視されます。
クライアント側のキャラクタ・セットが可変幅の場合、CLOB
またはNCLOB
の入力量は文字ではなくバイトで表されます。
このLOB操作をオープン・コールまたはクローズ・コールで囲む必要はありません。この操作を実行する前にLOBをオープンしていない場合、LOB列のファンクション索引とドメイン索引はこのコール時に更新されます。この操作を実行する前にLOBをオープンしている場合は、トランザクションをコミットまたはロールバックする前に、そのLOBをクローズする必要があります。内部LOBをクローズすると、LOB列のファンクション索引とドメイン索引が更新されます。
LOB操作をオープンAPIまたはクローズAPIで囲んでいない場合、ファンクション索引とドメイン索引は、LOBに書き込むたびに更新されます。これによって、パフォーマンスが低下する可能性があります。ファンクション索引とドメイン索引がある場合は、LOBへの書込み操作をオープン文またはクローズ文内に含めることをお薦めします。