この項では、OCI文字列関数について説明します。
表19-17 文字列関数
関数 | 用途 |
---|---|
|
文字列メモリーの割り当てられたサイズ(バイト単位)を取得します。 |
|
文字列に文字列を割り当てます。 |
|
テキスト文字列を文字列に代入します。 |
|
文字列ポインタを取得します。 |
|
文字列メモリーをサイズ変更します。 |
|
文字列サイズを取得します。 |
用途
文字列の割当てメモリー・サイズをコードポイント(Unicode)またはバイト単位で取得します。
構文
sword OCIStringAllocSize ( OCIEnv *env, OCIError *err, const OCIString *vs, ub4 *allocsize );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()
をコールして診断情報を取得します。
割り当てられたサイズがバイト単位で戻される文字列です。vs
は、NULL
以外のポインタにしてください。
文字列メモリーの割当てサイズをバイト単位で戻します。
コメント
割り当てられるサイズは、実際の文字列サイズより大きいかそれに等しくなります。
関連関数
OCIErrorGet()、OCIStringResize()、OCIStringSize()
用途
文字列を別の文字列に割り当てます。
構文
sword OCIStringAssign ( OCIEnv *env, OCIError *err, const OCIString *rhs, OCIString **lhs );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()
をコールして診断情報を取得します。
割当ての右側(ソース)です。UTF-16が可能です。
割当ての左側(ターゲット)です。rhs
がUTF-16の場合、バッファはUTF-16になります。
コメント
rhs
文字列をlhs
文字列に割り当てます。lhs
文字列のサイズは、rhs
のサイズに応じて変更されます。割り当てられる文字列は、NULL
で終了します。長さのフィールドには、NULL
による終了に必要な余分なコードポイントやバイトは含まれません。
この関数は、割当て操作で領域が足りなくなった場合はエラーを戻します。
関連関数
OCIErrorGet()、OCIStringAssignText()
用途
ソース・テキスト文字列をターゲット文字列に割り当てます。
構文
sword OCIStringAssignText ( OCIEnv *env, OCIError *err, const OraText *rhs, ub2 rhs_len, OCIString **lhs );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()
をコールして診断情報を取得します。
割当ての右側(ソース)となるテキスト文字列またはUTF-16 Unicode文字列です。
rhs
文字列のバイト単位の長さです。
割当ての左側(ターゲット)です。rhs
がUnicodeの場合、バッファはUnicodeになります。
コメント
rhs
文字列をlhs
文字列に割り当てます。lhs
文字列のサイズは、rhs
のサイズに応じて変更されます。割り当てられる文字列は、NULL
で終了します。長さのフィールドには、NULL
による終了に必要な余分なバイトやコードポイントは含まれません。
関連関数
OCIErrorGet()、OCIStringAssign()
用途
指定の文字列のテキストへのポインタを取得します。
構文
text *OCIStringPtr ( OCIEnv *env, const OCIString *vs );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
文字列が戻されるOCIString
オブジェクトへのポインタです。vs
がUTF-16の場合は、戻されるバッファもUTF-16になります。戻されるバッファのエンコーディングを調べる場合は、OCIString
vs
自体のUTF-16情報をチェックします。これは、特定のOCIString
の設定が必ずenv
と同じ設定であるとは保証されていないためです。チェックする関数は、オブジェクトのメンバー・フィールドをチェックするために設計されたオブジェクトOCI関数であることが必要です。
コメント
なし
関連関数
OCIErrorGet()、OCIStringAssign()
用途
指定の文字列のメモリー・サイズを変更します。
構文
sword OCIStringResize ( OCIEnv *env, OCIError *err, ub4 new_size, OCIString **str );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
OCIエラー・ハンドルです。エラーがある場合は、err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()
をコールして診断情報を取得します。
文字列の新規メモリー・サイズ(バイト単位)です。new_size
には、文字列終了記号のヌル
文字用の領域を含める必要があります。
OCIオブジェクト・キャッシュから解放された文字列の割当てメモリーです。
コメント
この関数は、オブジェクト・キャッシュ内の指定された可変長文字列のメモリー・サイズを変更します。文字列の内容は保持されません。この関数は、新しいメモリー・リージョンに文字列を割り当てることがあります。この場合、指定の文字列が占有していたメモリーは解放されます。str
がNULL
の場合、この関数は文字列のメモリーを割り当てます。new_size
が0(ゼロ)の場合、この関数は、str
が占有していたメモリーを解放し、NULL
ポインタ値を戻します。
関連関数
OCIErrorGet()、OCIStringAllocSize()、OCIStringSize()
用途
指定の文字列vs
のサイズを取得します。
構文
ub4 OCIStringSize ( OCIEnv *env, const OCIString *vs );
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルです。
サイズがバイト単位で戻される文字列です。
コメント
戻されたサイズには、NULL
による終了用の余分なバイトは含まれていません。
関連関数