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