文字列の操作用に、2種類のデータ構造がサポートされています。
マルチバイト文字列
ワイドキャラクタ文字列
マルチバイト文字列は、システム固有のOracleキャラクタ・セットでエンコードされています。マルチバイト文字列で操作される関数は、文字列の長さをバイトで計算して、文字列を単位全体として取ります。ワイドキャラクタ(wchar
)文字列関数は、文字列操作では、より柔軟に処理します。文字に基づいた操作および文字列に基づいた操作をサポートし、長さは文字列の長さを文字で計算した数値です。
ワイドキャラクタ・データ型はOracle固有のものです。ANSI/ISO C標準で定義されているwchar_t
データ型と混同しないでください。Oracleのワイドキャラクタ・データ型はすべてのオペレーティング・システムで常に4バイトですが、wchar_t
のサイズは実装およびオペレーティング・システムによって異なります。Oracleのワイドキャラクタ・データ型は、マルチバイト・キャラクタを正規化し、固定幅にして処理を容易にします。これにより、Oracleのワイドキャラクタ・セットとシステム固有のキャラクタ・セット間でのラウンドトリップ変換の際、データが失われません。
文字列操作は、次のカテゴリに分類できます。
マルチバイト・キャラクタとワイド・キャラクタ間の文字列変換
文字の分類
大/小文字の変換
表示長の計算
比較、連結、検索などの一般的な文字列操作
表22-5に、OCI文字列操作関数のサマリーを示します。
表22-5 OCI文字列操作関数
関数 | 用途 |
---|---|
OCIMultiByteInSizeToWideChar() |
マルチバイト文字列の一部をワイドキャラクタ文字列に変換します。 |
OCIMultiByteStrCaseConversion() |
マルチバイト文字列を指定された大/小文字に変換し、結果を宛先配列にコピーします。 |
|
マルチバイト文字列を宛先文字列に追加します。 |
|
2つのマルチバイト文字列を、バイナリ、言語または大/小文字を区別しない比較メソッドを使用して比較します。 |
|
マルチバイト文字列を宛先配列にコピーします。次に、コピーされたバイト数を戻します。 |
|
マルチバイト文字列のバイト数を戻します。 |
|
マルチバイト文字列を宛先文字列にnバイト以内で追加します。 |
|
2つのマルチバイト文字列を、バイナリ、言語または大/小文字を区別しない比較メソッドを使用して比較します。各文字列は指定された長さの範囲内です。 |
|
指定されたバイト数のマルチバイト文字列を宛先配列にコピーします。 |
OCIMultiByteStrnDisplayLength() |
マルチバイト文字列が占める表示位置のバイト数を、nバイト以内で戻します。 |
|
|
OCIWideCharInSizeToMultiByte() |
ワイドキャラクタ文字列の一部をマルチバイト文字列に変換します。 |
|
マルチバイト・エンコーディングの際、ワイドキャラクタで必要なバイト数を判断します。 |
OCIWideCharStrCaseConversion() |
ワイドキャラクタ文字列を指定された大/小文字に変換し、結果を宛先配列にコピーします。 |
|
ワイドキャラクタ文字列を宛先文字列に追加します。 |
|
文字列内にある最初のワイド・キャラクタを検索します。検索が正常終了すると、ワイド・キャラクタへのポインタを戻します。 |
|
2つのワイドキャラクタ文字列を、バイナリ、言語または大/小文字を区別しない比較メソッドを使用して比較します。 |
|
ワイドキャラクタ文字列を宛先配列にコピーします。次に、コピーされた文字数を戻します。 |
|
ワイドキャラクタ文字列の文字数を戻します。 |
|
ワイドキャラクタ文字列を宛先文字列にn文字以内で追加します。 |
|
2つのワイドキャラクタ文字列を、バイナリ、言語または大/小文字を区別しないメソッドを使用して比較します。各文字列は指定された長さです。 |
|
ワイドキャラクタ文字列を宛先配列にn文字以内でコピーします。 |
|
ワイドキャラクタ文字列内にある最後の文字を検索します。 |
|
指定されたワイド・キャラクタを対応する小文字に変換します。 |
|
|
|
指定されたワイド・キャラクタを対応する大文字に変換します。 |
用途
マルチバイト文字列の一部をワイドキャラクタ文字列に変換します。
構文
sword OCIMultiByteInSizeToWideChar ( void *hndl, OCIWchar *dst, size_t dstsz, const OraText *src, size_t srcsz, size_t *rsize );
パラメータ
文字列のキャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
宛先バッファへのwchar
のポインタです。dstsz
が0(ゼロ)の場合、NULL
ポインタを使用できます。
文字数単位で示した宛先バッファ・サイズです。0(ゼロ)の場合、変換に必要な文字数が戻されます。
変換対象のソース文字列です。
バイトで示したソース文字列の長さです。
宛先バッファに書き込まれる文字数です。または、dstsz
が0(ゼロ)の場合、変換された文字列の文字数です。NULL
ポインタの場合、何も戻されません。
コメント
このルーチンは、マルチバイト文字列の一部をワイドキャラクタ文字列に変換します。出力バッファ・サイズの制限か入力バッファ・サイズの制限に達するまで、またはソース文字列でヌル
終端文字が出現するまで、何文字でも文字をすべて変換します。出力バッファは、領域に余裕がある場合、NULL
で終了します。dstsz
が0(ゼロ)の場合、ヌル
終端文字を含まない、変換文字列に必要な文字数のみ戻されます。OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
関連関数
用途
srcstr
が指し示すマルチバイト文字列を大文字または小文字(フラグによって指定)に変換し、その結果を、dststr
が指し示す配列にコピーします。
構文
size_t OCIMultiByteStrCaseConversion ( void *hndl, OraText *dststr, const OraText *srcstr, ub4 flag );
パラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。
宛先配列へのポインタです。結果の文字列は、NULL
で終了します。
ソース文字列へのポインタです。
大文字または小文字のいずれに変換するかを指定します。
OCI_NLS_UPPERCASE
: 大文字に変換します。
OCI_NLS_LOWERCASE
: 小文字に変換します。
このフラグをOCI_NLS_LINGUISTIC
とともに使用すると、ロケールの言語設定を大/小文字の変換に使用するよう指定できます。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ヌル
終端文字を含まない結果文字列のバイト数。
用途
srcstr
が指し示すマルチバイト文字列のコピーを、dststr
が指し示す文字列の最後に追加します。
構文
size_t OCIMultiByteStrcat ( void *hndl, OraText *dststr, const OraText *srcstr );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
追加先のマルチバイト文字列へのポインタです。出力バッファは、NULL
で終了します。
追加するソース文字列へのポインタです。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ヌル
終端文字を含まない結果文字列のバイト数。
関連関数
用途
2つのマルチバイト文字列を、バイナリ、言語または大/小文字を区別しない比較メソッドを使用して比較します。
構文
int OCIMultiByteStrcmp ( void *hndl, const OraText *str1, const OraText *str2, int flag );
パラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。
NULL
で終了する文字列へのポインタです。
NULL
で終了する文字列へのポインタです。
比較メソッドを決定するために使用されます。次のいずれかの値です。
OCI_NLS_BINARY
: バイナリ比較。これがデフォルト値です。
OCI_NLS_LINGUISTIC
: ロケールで指定された言語比較。
このフラグをOCI_NLS_CASE_INSENSITIVE
とともに使用することにより、大/小文字を区別しない比較を実行できます。たとえば、大/小文字を区別せずに文字列の言語を比較するには、OCI_NLS_LINGUISTIC|OCI_NLS_CASE_INSENSITIVE
を使用します。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
0(str1 = str2
の場合)
正(str1 > str2
の場合)
負(str1 < str2
の場合)
関連関数
用途
srcstr
が指し示すマルチバイト文字列を、dststr
が指し示す配列にコピーします。
構文
size_t OCIMultiByteStrcpy ( void *hndl, OraText *dststr, const OraText *srcstr );
パラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルへのポインタです。
宛先バッファへのポインタです。出力バッファは、NULL
で終了します。
ソース・マルチバイト文字列へのポインタです。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ヌル
終端文字を含まない、コピーされるバイト数。
関連関数
用途
str
が指し示すマルチバイト文字列のバイト数(ヌル
終端文字を含まない)を戻します。
構文
size_t OCIMultiByteStrlen ( void *hndl, const OraText *str );
パラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルへのポインタです。
ソース・マルチバイト文字列へのポインタです。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ヌル
終端文字を含まないバイト数。
関連関数
用途
指定されたバイト数をマルチバイト文字列から宛先文字列に追加します。
構文
size_t OCIMultiByteStrncat ( void *hndl, OraText *dststr, const OraText *srcstr, size_t n );
パラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルへのポインタです。
追加先のマルチバイト文字列へのポインタです。
追加するソース・マルチバイト文字列へのポインタです。
追加するsrcstr
のバイト数です。
コメント
この関数は、OCIMultiByteStrcat
()と類似しています。srcstr
から最大n
バイトがdststr
に追加されます。srcstr
のヌル
終端文字によって追加が終了され、n
バイト以内で関数は可能な数の文字を追加します。dststr
はNULL
で終了します。OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ヌル
終端文字を含まない結果文字列のバイト数。
関連関数
用途
2つのマルチバイト文字列を、バイナリ、言語または大/小文字を区別しない比較メソッドを使用して比較します。各文字列の長さは指定されています。
構文
int OCIMultiByteStrncmp ( void *hndl, const OraText *str1, size_t len1, OraText *str2, size_t len2, int flag );
パラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。
最初の文字列へのポインタです。
比較する最初の文字列の長さです。
2番目の文字列へのポインタです。
比較する2番目の文字列の長さです。
比較メソッドを決定するために使用されます。次のいずれかの値です。
OCI_NLS_BINARY
: バイナリ比較。これがデフォルト値です。
OCI_NLS_LINGUISTIC
: ロケールで指定された言語比較。
このフラグをOCI_NLS_CASE_INSENSITIVE
とともに使用することにより、大/小文字を区別しない比較を実行できます。たとえば、大/小文字を区別せずに文字列の言語を比較するには、OCI_NLS_LINGUISTIC|OCI_NLS_CASE_INSENSITIVE
を使用します。
コメント
この関数はOCIMultiByteStrcmp
()と類似していますが、最大str1
からlen1
バイト、str2
からlen2
バイトが比較される点が異なります。比較では、ヌル
終端文字が使用されます。OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
0(str1
= str2
の場合)
正(str1
> str2
の場合)
負(str1
< str2
の場合)
関連関数
用途
マルチバイト文字列を配列にコピーします。
構文
size_t OCIMultiByteStrncpy ( void *hndl, OraText *dststr, const OraText *srcstr, size_t n );
パラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルへのポインタです。
宛先バッファへのポインタです。
ソース・マルチバイト文字列へのポインタです。
コピーするsrcstr
のバイト数です。
コメント
この関数は、OCIMultiByteStrcpy
()と類似しています。ただし、srcstr
が指し示す配列からdststr
が指し示す配列にコピーされるのは、最大n
バイトです。srcstr
のヌル
終端文字によってコピーが終了され、n
バイト以内で関数は可能な数の文字をコピーします。結果の文字列は、NULL
で終了します。OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ヌル終端文字を含まない結果文字列のバイト数。
関連関数
用途
マルチバイト文字列が占める表示位置のバイト数を、n
バイト以内で戻します。
構文
size_t OCIMultiByteStrnDisplayLength ( void *hndl, const OraText *str1, size_t n );
パラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。
マルチバイト文字列へのポインタです。
検査するバイト数です。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
表示位置の数です。
用途
NULL
で終了する文字列全体をワイドキャラクタ文字列に変換します。
構文
sword OCIMultiByteToWideChar ( void *hndl, OCIWchar *dst, const OraText *src, size_t *rsize );
パラメータ
文字列のキャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
wchar
の宛先バッファです。
変換対象のソース文字列です。
ヌル
終端文字を含めた変換された文字数です。NULL
ポインタの場合、何も戻されません。
コメント
wchar
出力バッファは、NULL
で終了します。OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
関連関数
用途
ワイドキャラクタ文字列の一部をマルチバイト形式に変換します。
構文
sword OCIWideCharInSizeToMultiByte ( void *hndl, OraText *dst, size_t dstsz, const OCIWchar *src, size_t srcsz, size_t *rsize );
パラメータ
string.dst (OUT)のキャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
マルチバイトの宛先バッファです。dstsz
が0(ゼロ)の場合、NULL
ポインタを使用できます。
バイト単位で示した宛先バッファ・サイズです。0(ゼロ)の場合、変換文字列に必要なサイズがバイト単位で戻されます。
変換対象のソースwchar
文字列です。
文字で示したソース文字列の長さです。
宛先バッファに書き込まれるバイト数です。または、dstsz
が0(ゼロ)の場合、変換された文字列の格納に必要なバイト数です。NULL
ポインタの場合、何も戻されません。
コメント
ワイドキャラクタ文字列の一部をマルチバイト形式に変換します。出力バッファ・サイズか入力バッファ・サイズに達するまで、またはソース文字列でヌル
終端文字が出現するまで、何文字でも文字をすべて変換します。出力バッファは、領域に余裕がある場合、NULL
で終了します。dstsz
が0(ゼロ)の場合、ヌル
終端文字を含まない、変換文字列の格納に必要なサイズがバイト単位で戻されます。OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
用途
マルチバイト・エンコーディングの際、ワイドキャラクタで必要なバイト数を判断します。
構文
size_t OCIWideCharMultiByteLength ( void *hndl, OCIWchar wc );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
wchar
文字です。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ワイドキャラクタに必要なバイト数です。
用途
ワイドキャラクタ文字列を指定された大/小文字に変換し、結果を宛先配列にコピーします。
構文
size_t OCIMultiByteStrCaseConversion ( void *hndl, OraText *dststr, const OraText *srcstr, ub4 flag );
パラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。
宛先配列へのポインタです。
ソース文字列へのポインタです。
大文字または小文字のいずれに変換するかを指定します。
OCI_NLS_UPPERCASE
: 大文字に変換します。
OCI_NLS_LOWERCASE
: 小文字に変換します。
このフラグをOCI_NLS_LINGUISTIC
とともに使用すると、ロケールの言語設定を大/小文字の変換に使用するよう指定できます。
コメント
srcstr
が指し示すワイドキャラクタ文字列を大文字または小文字(フラグによって指定)に変換し、その結果を、dststr
が指し示す配列にコピーします。結果の文字列は、NULL
で終了します。OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ヌル
終端文字を含まない結果文字列のバイト数。
用途
wsrcstr
が指し示すワイドキャラクタ文字列を、wdststr
が指し示すワイドキャラクタ文字列に追加します。
構文
size_t OCIWideCharStrcat ( void *hndl, OCIWchar *wdststr, const OCIWchar *wsrcstr );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
宛先wchar
文字列へのポインタです。出力バッファは、NULL
で終了します。
追加するソース・ワイドキャラクタ文字列へのポインタです。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ヌル
終端文字を含まない結果文字列の文字数。
関連関数
用途
ワイドキャラクタ文字列内にある最初の指定された文字を検索します。
構文
OCIWchar *OCIWideCharStrchr ( void *hndl, const OCIWchar *wstr, OCIWchar wc );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
検索するwchar
文字列へのポインタです。
検索対象のwchar
です。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
成功した場合はwchar
ポインタ、そうでない場合はNULL
ポインタです。
関連関数
用途
2つのワイドキャラクタ文字列を、バイナリ(wchar
エンコーディング値に基づく)、言語または大/小文字を区別しない比較メソッドを使用して比較します。
構文
int OCIWideCharStrcmp ( void *hndl, const OCIWchar *wstr1, const OCIWchar *wstr2, int flag );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
NULL
で終了するwchar
文字列へのポインタ。
NULL
で終了するwchar
文字列へのポインタ。
比較メソッドを決定するために使用されます。次のいずれかの値です。
OCI_NLS_BINARY
: バイナリ比較。これがデフォルト値です。
OCI_NLS_LINGUISTIC
: ロケール定義で指定された言語比較。
このフラグをOCI_NLS_CASE_INSENSITIVE
とともに使用することにより、大/小文字を区別しない比較を実行できます。たとえば、大/小文字を区別せずに文字列の言語を比較するには、OCI_NLS_LINGUISTIC|OCI_NLS_CASE_INSENSITIVE
を使用します。
OCIWideCharStrcmp()
では、指定されたワイド・キャラクタ引数の言語比較を実行するためにUNICODE_BINARYソート方法は使用できません。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
0(wstr1 = wstr2
の場合)
正(wstr1 > wstr2
の場合)
負(wstr1 < wstr2
の場合)
関連関数
用途
ワイドキャラクタ文字列を配列にコピーします。
構文
size_t OCIWideCharStrcpy ( void *hndl, OCIWchar *wdststr, const OCIWchar *wsrcstr );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
宛先wchar
バッファへのポインタです。結果の文字列は、NULL
で終了します。
ソースwchar
文字列へのポインタです。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ヌル
終端文字を含まない、コピーされる文字数。
関連関数
用途
ワイドキャラクタ文字列の文字数を戻します。
構文
size_t OCIWideCharStrlen ( void *hndl, const OCIWchar *wstr );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
ソースwchar
文字列へのポインタです。
コメント
wstr
が指し示すwchar
文字列の文字数(ヌル
終端文字を含まない)を戻します。OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ヌル
終端文字を含まない文字数。
用途
ワイドキャラクタ文字列を宛先にn
文字以内で追加します。
構文
size_t OCIWideCharStrncat ( void *hndl, OCIWchar *wdststr, const OCIWchar *wsrcstr, size_t n );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
宛先wchar
文字列へのポインタです。
ソースwchar
文字列へのポインタです。
追加するwsrcstr
の文字数です。
コメント
この関数は、OCIWideCharStrcat
()と類似しています。wsrcstr
から最大n
文字がwdststr
に追加されます。wsrcstr
のヌル
終端文字によって追加が終了されます。wdststr
はNULL
で終了します。OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ヌル
終端文字を含まない結果文字列の文字数。
関連関数
用途
2つのワイドキャラクタ文字列を、バイナリ、言語または大/小文字を区別するメソッドを使用して比較します。各文字列は長さが指定されています。
構文
int OCIWideCharStrncmp ( void *hndl, const OCIWchar *wstr1, size_t len1, const OCIWchar *wstr2, size_t len2, int flag );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
最初のwchar
文字列へのポインタです。
比較する最初の文字列の長さです。
2番目のwchar
文字列へのポインタです。
比較する2番目の文字列の長さです。
比較メソッドを決定するために使用されます。次のいずれかの値です。
OCI_NLS_BINARY
: バイナリ比較の場合。これがデフォルト値です。
OCI_NLS_LINGUISTIC
: ロケールで指定された言語比較の場合。
このフラグをOCI_NLS_CASE_INSENSITIVE
とともに使用することにより、大/小文字を区別しない比較を実行できます。たとえば、大/小文字を区別せずに文字列の言語を比較するには、OCI_NLS_LINGUISTIC
| OCI_NLS_CASE_INSENSITIVE
を使用します。
コメント
この関数は、OCIWideCharStrcmp
()と類似しています。2つのワイドキャラクタ文字列を、バイナリ、言語または大/小文字を区別しない比較メソッドを使用して比較します。wstr1
から最大len1
バイト、wstr2
から最大len2
バイトが比較されます。比較では、ヌル
終端文字が使用されます。OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
OCIWideCharStrncmp()
では、指定されたワイド・キャラクタ引数の言語比較を実行するためにUNICODE_BINARYソート方法は使用できません。
戻り値
0(wstr1 = wstr2
の場合)
正(wstr1 > wstr2
の場合)
負(wstr1 < wstr2
の場合)
関連関数
用途
ワイドキャラクタ文字列を宛先にn
文字以内でコピーします。
構文
size_t OCIWideCharStrncpy ( void *hndl, OCIWchar *wdststr, const OCIWchar *wsrcstr, size_t n );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
宛先wchar
バッファへのポインタです。
ソースwchar
文字列へのポインタです。
コピーするwsrcstr
の文字数です。
コメント
この関数は、OCIWideCharStrcpy
()と類似しています。ただし、wsrcstr
が指し示す配列からwdststr
が指し示す配列にコピーされるのは、最大n
文字です。wdststr
のヌル
終端文字によってコピーが終了されます。結果の文字列はNULL
で終了します。OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
ヌル
終端文字を含まない、コピーされる文字数。
関連関数
用途
ワイドキャラクタ文字列内にある最後の文字を検索します。
構文
OCIWchar *OCIWideCharStrrchr ( void *hndl, const OCIWchar *wstr, OCIWchar wc );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
検索するwchar
文字列へのポインタです。
検索対象のwchar
です。
コメント
wstr
が指し示すwchar
文字列内にある最後のwc
を検索します。OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
成功した場合はwchar
ポインタ、そうでない場合はNULL
ポインタです。
関連関数
用途
wc
によって指定されたワイドキャラクタ文字列を、指定されたロケールの対応する小文字(存在する場合)に変換します。対応する小文字が存在しない場合、wc
そのものが戻されます。
構文
OCIWchar OCIWideCharToLower ( void *hndl, OCIWchar wc );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
小文字に変換するwchar
です。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
wchar
です。
関連関数
用途
NULL
で終了するワイドキャラクタ文字列全体をマルチバイト文字列に変換します。
構文
sword OCIWideCharToMultiByte ( void *hndl, OraText *dst, const OCIWchar *src, size_t *rsize );
パラメータ
文字列のキャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
マルチバイト文字列の宛先バッファです。出力バッファは、NULL
で終了します。
変換対象のソースwchar
文字列です。
文字で示したソース文字列の長さです。
宛先バッファに書き込まれるバイト数です。NULL
ポインタの場合、何も戻されません。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
関連関数
用途
wc
によって指定されたワイドキャラクタ文字列を、指定されたロケールの対応する大文字(存在する場合)に変換します。対応する大文字が存在しない場合、wc
そのものが戻されます。
構文
OCIWchar OCIWideCharToUpper ( void *hndl, OCIWchar wc );
パラメータ
キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
大文字に変換するwchar
です。
コメント
OCIEnvNlsCreate()
関数のSQL CHAR
データにOCI_UTF16ID
が指定されている場合、エラーが発生します。
戻り値
wchar
です。
関連関数