プライマリ・コンテンツに移動
Oracle® Call Interfaceプログラマーズ・ガイド
12c リリース1 (12.1)
B72465-07
目次へ移動
目次
索引へ移動
索引

前
次

OCI文字列操作関数

OCI文字列操作関数をリストし、説明します。

文字列の操作用に、2種類のデータ構造がサポートされています。

  • マルチバイト文字列

  • ワイドキャラクタ文字列

マルチバイト文字列は、システム固有のOracleキャラクタ・セットでエンコードされています。マルチバイト文字列で動作する関数は、バイト単位で計算された文字列の長さを使用して、文字列全体を1つの単位として使用します。ワイドキャラクタ(wchar)文字列関数を使用すると、より柔軟に文字列を操作できます。文字に基づいた操作および文字列に基づいた操作をサポートし、長さは文字列の長さを文字で計算した数値です。

ワイドキャラクタ・データ型はOracle固有のもので、ANSI/ISO C標準で定義されているwchar_tデータ型と混同しないでください。Oracleのワイドキャラクタ・データ型はすべてのオペレーティング・システムで常に4バイトですが、wchar_tのサイズは実装およびオペレーティング・システムによって異なります。Oracleワイドキャラクタ・データ型は、マルチバイト文字を正規化するため、統一された固定幅になり、処理が簡単になります。これにより、Oracleのワイドキャラクタ・セットとシステム固有のキャラクタ・セット間でのラウンドトリップ変換の際、データが失われません。

文字列操作は、次のカテゴリに分類できます。

  • マルチバイト・キャラクタとワイド・キャラクタ間の文字列変換

  • 文字の分類

  • 大/小文字の変換

  • 表示長の計算

  • 比較、連結、検索などの一般的な文字列操作

表22-5は、この項で説明しているOCI文字列操作関数のサマリーを示しています。

表22-5 OCI文字列操作関数

関数 用途

OCIMultiByteInSizeToWideChar()

マルチバイト文字列の一部をワイドキャラクタ文字列に変換します。

OCIMultiByteStrCaseConversion()

マルチバイト文字列を指定された大/小文字に変換し、結果を宛先配列にコピーします。

OCIMultiByteStrcat()

マルチバイト文字列を宛先文字列に追加します。

OCIMultiByteStrcmp()

2つのマルチバイト文字列を、バイナリ、言語または大/小文字を区別しない比較メソッドを使用して比較します。

OCIMultiByteStrcpy()

マルチバイト文字列を宛先配列にコピーします。これは、コピーされたバイト数を戻します。

OCIMultiByteStrlen()

マルチバイト文字列のバイト数を戻します。

OCIMultiByteStrncat()

マルチバイト文字列を宛先文字列にnバイト以内で追加します。

OCIMultiByteStrncmp()

2つのマルチバイト文字列を、バイナリ、言語または大/小文字を区別しない比較メソッドを使用して比較します。各文字列は指定された長さの範囲内です。

OCIMultiByteStrncpy()

指定されたバイト数のマルチバイト文字列を宛先配列にコピーします。

OCIMultiByteStrnDisplayLength()

マルチバイト文字列が占める表示位置のバイト数を、nバイト以内で戻します。

OCIMultiByteToWideChar()

NULLで終了するマルチバイト文字列をワイドキャラクタ形式に変換します。

「OCIWideCharInSizeToMultiByte()」

ワイドキャラクタ文字列の一部をマルチバイト文字列に変換します。

OCIWideCharMultibyteLength()

マルチバイト・エンコーディングの際、ワイドキャラクタで必要なバイト数を判断します。

OCIWideCharStrCaseConversion()

ワイドキャラクタ文字列を指定された大/小文字に変換し、結果を宛先配列にコピーします。

OCIWideCharStrcat()

ワイドキャラクタ文字列を宛先文字列に追加します。

OCIWideCharStrchr()

文字列内にある最初のワイド・キャラクタを検索します。検索が正常終了すると、ワイド・キャラクタへのポインタを戻します。

OCIWideCharStrcmp()

2つのワイドキャラクタ文字列を、バイナリ、言語または大/小文字を区別しない比較メソッドを使用して比較します。

OCIWideCharStrcpy()

ワイドキャラクタ文字列を宛先配列にコピーします。次に、コピーされた文字数を戻します。

OCIWideCharStrlen()

ワイドキャラクタ文字列の文字数を戻します。

OCIWideCharStrncat()

ワイドキャラクタ文字列を宛先文字列にn文字以内で追加します。

OCIWideCharStrncmp()

2つのワイドキャラクタ文字列を、バイナリ、言語または大/小文字を区別しないメソッドを使用して比較します。各文字列は指定された長さです。

OCIWideCharStrncpy()

ワイドキャラクタ文字列を宛先配列にn文字以内でコピーします。

OCIWideCharStrrchr()

ワイドキャラクタ文字列内にある最後の文字を検索します。

OCIWideCharToLower()

指定されたワイド・キャラクタを対応する小文字に変換します。

OCIWideCharToMultiByte()

NULLで終了するワイドキャラクタ文字列をマルチバイト文字列に変換します。

OCIWideCharToUpper()

指定されたワイド・キャラクタを対応する大文字に変換します。

OCIMultiByteInSizeToWideChar()

用途

マルチバイト文字列の一部をワイドキャラクタ文字列に変換します。

構文

sword OCIMultiByteInSizeToWideChar ( void          *hndl,
                                     OCIWchar      *dst,
                                     size_t        dstsz,
                                     const OraText *src,
                                     size_t        srcsz,
                                     size_t        *rsize );

パラメータ

hndl (IN/OUT)

文字列のキャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

dst (OUT)

宛先バッファへのwcharのポインタです。dstszが0 (ゼロ)の場合、NULLポインタを使用できます。

dstsz (IN)

文字数単位で示した宛先バッファ・サイズです。0 (ゼロ)の場合、変換に必要な文字数が戻されます。

src (IN)

変換対象のソース文字列です。

srcsz (IN)

バイトで示したソース文字列の長さです。

rsize (OUT)

宛先バッファに書き込まれる文字数です。または、dstszが0 (ゼロ)の場合、変換された文字列の文字数です。NULLポインタの場合、何も戻されません。

コメント

このルーチンは、マルチバイト文字列の一部をワイドキャラクタ文字列に変換します。出力バッファ・サイズの制限か入力バッファ・サイズの制限に達するまで、またはソース文字列でNULL終端文字が出現するまで、何文字でも文字をすべて変換します。出力バッファは、領域に余裕がある場合、NULLで終了します。dstszが0(ゼロ)の場合、NULL終端文字を含まない、変換文字列に必要な文字数のみ戻されます。OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

OCI_SUCCESSOCI_INVALID_HANDLEまたはOCI_ERROR

OCIMultiByteStrCaseConversion()

用途

srcstrが指し示すマルチバイト文字列を大文字または小文字(フラグによって指定)に変換し、その結果を、dststrが指し示す配列にコピーします。

構文

size_t OCIMultiByteStrCaseConversion ( void           *hndl, 
                                       OraText        *dststr, 
                                       const OraText  *srcstr, 
                                       ub4            flag );

パラメータ

hndl (IN/OUT)

OCI環境ハンドルまたはユーザー・セッション・ハンドルです。

dststr (OUT)

宛先配列へのポインタです。結果の文字列は、NULLで終了します。

srcstr (IN)

ソース文字列へのポインタです。

flag (IN)

大文字または小文字のいずれに変換するかを指定します。

  • OCI_NLS_UPPERCASE: 大文字に変換します。

  • OCI_NLS_LOWERCASE: 小文字に変換します。

このフラグをOCI_NLS_LINGUISTICとともに使用すると、ロケールの言語設定を大/小文字の変換に使用するよう指定できます。

コメント

OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

NULL終端文字を含まない結果文字列のバイト数。

OCIMultiByteStrcat()

用途

srcstrが指し示すマルチバイト文字列のコピーを、dststrが指し示す文字列の最後に追加します。

構文

size_t OCIMultiByteStrcat ( void            *hndl, 
                            OraText         *dststr, 
                            const OraText   *srcstr );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

dststr (IN/OUT)

追加先のマルチバイト文字列へのポインタです。出力バッファは、NULLで終了します。

srcstr (IN)

追加するソース文字列へのポインタです。

コメント

OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

NULL終端文字を含まない結果文字列のバイト数。

OCIMultiByteStrcmp()

用途

2つのマルチバイト文字列を、バイナリ、言語または大/小文字を区別しない比較メソッドを使用して比較します。

構文

int OCIMultiByteStrcmp ( void            *hndl, 
                         const OraText   *str1, 
                         const OraText   *str2, 
                         int             flag );

パラメータ

hndl (IN/OUT)

OCI環境ハンドルまたはユーザー・セッション・ハンドルです。

str1 (IN)

NULLで終了する文字列へのポインタです。

str2 (IN)

NULLで終了する文字列へのポインタです。

flag (IN)

比較メソッドを決定するために使用されます。次のいずれかの値です。

  • 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の場合)

OCIMultiByteStrcpy()

用途

srcstrが指し示すマルチバイト文字列を、dststrが指し示す配列にコピーします。

構文

size_t OCIMultiByteStrcpy ( void            *hndl, 
                            OraText         *dststr, 
                            const OraText   *srcstr );

パラメータ

hndl (IN/OUT)

OCI環境ハンドルまたはユーザー・セッション・ハンドルへのポインタです。

dststr (OUT)

宛先バッファへのポインタです。出力バッファは、NULLで終了します。

srcstr (IN)

ソース・マルチバイト文字列へのポインタです。

コメント

OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

NULL終端文字を含まない、コピーされるバイト数。

OCIMultiByteStrlen()

用途

strが指し示すマルチバイト文字列のバイト数(NULL終端文字を含まない)を戻します。

構文

size_t OCIMultiByteStrlen ( void           *hndl, 
                            const OraText  *str );

パラメータ

hndl (IN/OUT)

OCI環境ハンドルまたはユーザー・セッション・ハンドルへのポインタです。

str (IN)

ソース・マルチバイト文字列へのポインタです。

コメント

OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

NULL終端文字を含まないバイト数。

関連関数

OCIWideCharStrlen()

OCIMultiByteStrncat()

用途

指定されたバイト数をマルチバイト文字列から宛先文字列に追加します。

構文

size_t OCIMultiByteStrncat ( void            *hndl, 
                             OraText         *dststr, 
                             const OraText   *srcstr, 
                             size_t          n );

パラメータ

hndl (IN/OUT)

OCI環境ハンドルまたはユーザー・セッション・ハンドルへのポインタです。

dststr (IN/OUT)

追加先のマルチバイト文字列へのポインタです。

srcstr (IN)

追加するソース・マルチバイト文字列へのポインタです。

n (IN)

追加するsrcstrのバイト数です。

コメント

この関数は、OCIMultiByteStrcat()と類似しています。srcstrから最大nバイトがdststrに追加されます。srcstrNULL終端文字によって追加が終了され、nバイト以内で関数は可能な数の文字を追加します。dststrパラメータはNULLで終了します。OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

NULL終端文字を含まない結果文字列のバイト数。

OCIMultiByteStrncmp()

用途

2つのマルチバイト文字列を、バイナリ、言語または大/小文字を区別しない比較メソッドを使用して比較します。各文字列の長さは指定されています。

構文

int OCIMultiByteStrncmp ( void           *hndl,
                          const OraText  *str1,
                          size_t         len1,
                          OraText        *str2,
                          size_t         len2,
                          int            flag );

パラメータ

hndl (IN/OUT)

OCI環境ハンドルまたはユーザー・セッション・ハンドルです。

str1 (IN)

最初の文字列へのポインタです。

len1 (IN)

比較する最初の文字列の長さです。

str2 (IN)

2番目の文字列へのポインタです。

len2 (IN)

比較する2番目の文字列の長さです。

flag (IN)

比較メソッドを決定するために使用されます。次のいずれかの値です。

  • OCI_NLS_BINARY: バイナリ比較。これがデフォルト値です。

  • OCI_NLS_LINGUISTIC: ロケールで指定された言語比較。

このフラグをOCI_NLS_CASE_INSENSITIVEとともに使用することにより、大/小文字を区別しない比較を実行できます。たとえば、大/小文字を区別せずに文字列の言語を比較するには、OCI_NLS_LINGUISTIC|OCI_NLS_CASE_INSENSITIVEを使用します。

コメント

この関数はOCIMultiByteStrcmp()と類似していますが、最大str1からlen1バイト、str2からlen2バイトが比較される点が異なります。比較では、NULL終端文字が使用されます。OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

関数の戻り値は次のとおりです。

  • 0 (str1 = str2の場合)

  • 正(str1 > str2の場合)

  • 負(str1 < str2の場合)

OCIMultiByteStrncpy()

用途

マルチバイト文字列を配列にコピーします。

構文

size_t OCIMultiByteStrncpy ( void            *hndl, 
                             OraText         *dststr, 
                             const OraText   *srcstr, 
                             size_t           n );

パラメータ

hndl (IN/OUT)

OCI環境ハンドルまたはユーザー・セッション・ハンドルへのポインタです。

dststr (IN)

ソース・マルチバイト文字列へのポインタです。

srcstr (OUT)

宛先バッファへのポインタです。

n (IN)

コピーするsrcstrのバイト数です。

コメント

この関数は、OCIMultiByteStrcpy()と類似しています。ただし、srcstrが指し示す配列からdststrが指し示す配列にコピーされるのは、最大nバイトです。srcstrNULL終端文字によってコピーが終了され、nバイト以内で関数は可能な数の文字をコピーします。結果の文字列は、NULLで終了します。OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

NULL終端文字を含まない結果文字列のバイト数。

OCIMultiByteStrnDisplayLength()

用途

マルチバイト文字列が占める表示位置のバイト数を、nバイト以内で戻します。

構文

size_t OCIMultiByteStrnDisplayLength ( void            *hndl, 
                                       const OraText   *str1, 
                                       size_t          n );

パラメータ

hndl (IN/OUT)

OCI環境ハンドルまたはユーザー・セッション・ハンドルです。

str1 (IN)

マルチバイト文字列へのポインタです。

n (IN)

検査するバイト数です。

コメント

OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

表示位置の数です。

OCIMultiByteToWideChar()

用途

NULLで終了する文字列全体をワイドキャラクタ文字列に変換します。

構文

sword OCIMultiByteToWideChar ( void            *hndl, 
                               OCIWchar        *dst, 
                               const OraText   *src, 
                               size_t          *rsize );

パラメータ

hndl (IN/OUT)

文字列のキャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

dst (OUT)

wcharの宛先バッファです。

src (IN)

変換対象のソース文字列です。

rsize (OUT)

NULL終端文字を含めた変換された文字数です。NULLポインタの場合、何も戻されません。

コメント

wchar出力バッファは、NULLで終了します。OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

OCI_SUCCESSOCI_INVALID_HANDLEまたはOCI_ERROR

OCIWideCharInSizeToMultiByte()

用途

ワイドキャラクタ文字列の一部をマルチバイト形式に変換します。

構文

sword OCIWideCharInSizeToMultiByte ( void             *hndl, 
                                     OraText          *dst, 
                                     size_t           dstsz, 
                                     const OCIWchar   *src, 
                                     size_t           srcsz, 
                                     size_t           *rsize );

パラメータ

hndl (IN/OUT)

文字列のキャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

dst (OUT)

マルチバイトの宛先バッファです。dstszが0(ゼロ)の場合、NULLポインタを使用できます。

dstsz (IN)

バイト単位で示した宛先バッファ・サイズです。0 (ゼロ)の場合、変換文字列に必要なサイズがバイト単位で戻されます。

src (IN)

変換対象のソースwchar文字列です。

srcsz (IN)

文字で示したソース文字列の長さです。

rsize (OUT)

宛先バッファに書き込まれるバイト数です。または、dstszが0 (ゼロ)の場合、変換された文字列を格納するのに必要なバイト数です。NULLポインタの場合、何も戻されません。

コメント

ワイドキャラクタ文字列の一部をマルチバイト形式に変換します。出力バッファ・サイズか入力バッファ・サイズに達するまで、またはソース文字列でNULL終端文字が出現するまで、何文字でも文字をすべて変換します。出力バッファは、領域に余裕がある場合、NULLで終了します。dstszが0 (ゼロ)の場合、NULL終端文字を含まない、変換された文字列の格納に必要なサイズがバイト単位で戻されます。OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

OCI_SUCCESSOCI_INVALID_HANDLEまたはOCI_ERROR

OCIWideCharMultiByteLength()

用途

マルチバイト・エンコーディングの際、ワイドキャラクタで必要なバイト数を判断します。

構文

size_t OCIWideCharMultiByteLength ( void      *hndl, 
                                    OCIWchar  wc );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

wc (IN)

wchar文字です。

コメント

OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

ワイドキャラクタに必要なバイト数です。

OCIWideCharStrCaseConversion()

用途

ワイドキャラクタ文字列を指定された大/小文字に変換し、結果を宛先配列にコピーします。

構文

size_t OCIWideCharStrCaseConversion ( void              *hndl, 
                                      OraText           *dststr, 
                                      const OraText     *srcstr, 
                                      ub4               flag );

パラメータ

hndl (IN/OUT)

OCI環境ハンドルまたはユーザー・セッション・ハンドルです。

dststr (OUT)

宛先配列へのポインタです。結果の文字列は、NULLで終了します。

srcstr (IN)

ソース文字列へのポインタです。

flag (IN)

大文字または小文字のいずれに変換するかを指定します。

  • OCI_NLS_UPPERCASE: 大文字に変換します。

  • OCI_NLS_LOWERCASE: 小文字に変換します。

このフラグをOCI_NLS_LINGUISTICとともに使用すると、ロケールの言語設定を大/小文字の変換に使用するよう指定できます。

コメント

srcstrが指し示すワイドキャラクタ文字列を大文字または小文字(フラグによって指定)に変換し、その結果を、dststrが指し示す配列にコピーします。OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

NULL終端文字を含まない結果文字列のバイト数。

OCIWideCharStrcat()

用途

wsrcstrが指し示すワイドキャラクタ文字列を、wdststrが指し示すワイドキャラクタ文字列に追加します。

構文

size_t OCIWideCharStrcat ( void             *hndl, 
                           OCIWchar         *wdststr, 
                           const OCIWchar   *wsrcstr );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

wdststr (IN/OUT)

宛先wchar文字列へのポインタです。出力バッファは、NULLで終了します。

wsrcstr (IN)

追加するソース・ワイドキャラクタ文字列へのポインタです。

コメント

OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

NULL終端文字を含まない結果文字列の文字数。

OCIWideCharStrchr()

用途

ワイドキャラクタ文字列内にある最初の指定された文字を検索します。

構文

OCIWchar *OCIWideCharStrchr ( void             *hndl, 
                              const OCIWchar   *wstr, 
                              OCIWchar         wc );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

wstr (IN)

検索するwchar文字列へのポインタです。

wc (IN)

検索対象のwcharです。

コメント

OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

成功した場合はwcharポインタ、そうでない場合はNULLポインタです。

OCIWideCharStrcmp()

用途

2つのワイドキャラクタ文字列を、バイナリ(wcharエンコーディング値に基づく)、言語または大/小文字を区別しない比較メソッドを使用して比較します。

構文

int OCIWideCharStrcmp ( void             *hndl, 
                        const OCIWchar   *wstr1, 
                        const OCIWchar   *wstr2, 
                        int              flag );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

wstr1 (IN)

NULLで終了するwchar文字列へのポインタ。

wstr2 (IN)

NULLで終了するwchar文字列へのポインタ。

flag (IN)

比較メソッドを決定するために使用されます。次のいずれかの値です。

  • 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の場合)

OCIWideCharStrcpy()

用途

ワイドキャラクタ文字列を配列にコピーします。

構文

size_t OCIWideCharStrcpy ( void             *hndl, 
                           OCIWchar         *wdststr, 
                           const OCIWchar   *wsrcstr );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

wdststr (OUT)

宛先wcharバッファへのポインタです。結果の文字列は、NULLで終了します。

wsrcstr (IN)

ソースwchar文字列へのポインタです。

コメント

OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

NULL終端文字を含まない、コピーされる文字数。

OCIWideCharStrlen()

用途

ワイドキャラクタ文字列の文字数を戻します。

構文

size_t OCIWideCharStrlen ( void             *hndl, 
                           const OCIWchar   *wstr );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

wstr (IN)

ソースwchar文字列へのポインタです。

コメント

wstrが指し示すwchar文字列の文字数(NULL終端文字を含まない)を戻します。OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

NULL終端文字を含まない文字数。

OCIWideCharStrncat()

用途

ワイドキャラクタ文字列を宛先にn文字以内で追加します。

構文

size_t OCIWideCharStrncat ( void             *hndl, 
                            OCIWchar         *wdststr, 
                            const OCIWchar   *wsrcstr, 
                            size_t           n );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

wdststr (IN/OUT)

宛先wchar文字列へのポインタです。

wsrcstr (IN)

ソースwchar文字列へのポインタです。

n (IN)

追加するwsrcstrの文字数です。

コメント

この関数は、OCIWideCharStrcat()と類似しています。wsrcstrから最大n文字がwdststrに追加されます。wsrcstrNULL終端文字によって追加が終了されます。wdststrパラメータはNULLで終了します。OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

NULL終端文字を含まない結果文字列の文字数。

関連関数

OCIWideCharStrcat()

OCIWideCharStrncmp()

用途

2つのワイドキャラクタ文字列を、バイナリ、言語または大/小文字を区別するメソッドを使用して比較します。各文字列は長さが指定されています。

構文

int OCIWideCharStrncmp ( void                *hndl, 
                         const OCIWchar      *wstr1, 
                         size_t              len1, 
                         const OCIWchar      *wstr2, 
                         size_t              len2, 
                         int                 flag );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

wstr1 (IN)

最初のwchar文字列へのポインタです。

len1 (IN)

比較する最初の文字列の長さです。

wstr2 (IN)

2番目のwchar文字列へのポインタです。

len2 (IN)

比較する2番目の文字列の長さです。

flag (IN)

比較メソッドを決定するために使用されます。次のいずれかの値です。

  • OCI_NLS_BINARY: バイナリ比較の場合。これがデフォルト値です。

  • OCI_NLS_LINGUISTIC: ロケールで指定された言語比較の場合。

このフラグをOCI_NLS_CASE_INSENSITIVEとともに使用することにより、大/小文字を区別しない比較を実行できます。たとえば、大/小文字を区別せずに文字列の言語を比較するには、OCI_NLS_LINGUISTIC|OCI_NLS_CASE_INSENSITIVEを使用します。

コメント

この関数は、OCIWideCharStrcmp()と類似しています。2つのワイドキャラクタ文字列を、バイナリ、言語または大/小文字を区別しない比較メソッドを使用して比較します。wstr1から最大len1バイト、wstr2から最大len2バイトが比較されます。比較では、NULL終端文字が使用されます。OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

OCIWideCharStrncmp()では、指定されたワイドキャラクタ引数の言語比較を実行するためにUNICODE_BINARYソート方法は使用できません。

戻り値

関数の戻り値は次のとおりです。

  • 0 (wstr1 = wstr2の場合)

  • 正(wstr1 > wstr2の場合)

  • 負(wstr1 < wstr2の場合)

関連関数

OCIWideCharStrcmp()

OCIWideCharStrncpy()

用途

ワイドキャラクタ文字列を宛先にn文字以内でコピーします。

構文

size_t OCIWideCharStrncpy ( void             *hndl, 
                            OCIWchar         *wdststr, 
                            const OCIWchar   *wsrcstr, 
                            size_t           n );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

wdststr (OUT)

宛先wcharバッファへのポインタです。

wsrcstr (IN)

ソースwchar文字列へのポインタです。

n (IN)

コピーするwsrcstrの文字数です。

コメント

この関数は、OCIWideCharStrcpy()と類似しています。ただし、wsrcstrが指し示す配列からwdststrが指し示す配列にコピーされるのは、最大n文字です。wdststr内のNULL終端文字に達するとコピーが停止され、生成される文字列の最後はNULLです。OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

NULL終端文字を含まない、コピーされる文字数。

関連関数

OCIWideCharStrcpy()

OCIWideCharStrrchr()

用途

ワイドキャラクタ文字列内にある最後の文字を検索します。

構文

OCIWchar *OCIWideCharStrrchr ( void              *hndl, 
                               const OCIWchar    *wstr, 
                               OCIWchar          wc );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

wstr (IN)

検索するwchar文字列へのポインタです。

wc (IN)

検索対象のwcharです。

コメント

wstrが指し示すwchar文字列内にある最後のwcを検索します。OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

成功した場合はwcharポインタ、そうでない場合はNULLポインタです。

関連関数

OCIWideCharStrchr()

OCIWideCharToLower()

用途

wcによって指定されたワイドキャラクタ文字列を、指定されたロケールの対応する小文字(存在する場合)に変換します。対応する小文字が存在しない場合、wcそのものが戻されます。

構文

OCIWchar OCIWideCharToLower ( void        *hndl, 
                              OCIWchar    wc );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

wc (IN)

小文字に変換するwcharです。

コメント

OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

wcharです。

OCIWideCharToMultiByte()

用途

NULLで終了するワイドキャラクタ文字列全体をマルチバイト文字列に変換します。

構文

sword OCIWideCharToMultiByte ( void             *hndl, 
                               OraText          *dst, 
                               const OCIWchar   *src, 
                               size_t           *rsize );

パラメータ

hndl (IN/OUT)

文字列のキャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

dst (OUT)

マルチバイト文字列の宛先バッファです。出力バッファは、NULLで終了します。

src (IN)

変換対象のソースwchar文字列です。

rsize (OUT)

宛先バッファに書き込まれるバイト数です。NULLポインタの場合、何も戻されません。

コメント

OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

OCI_SUCCESSOCI_INVALID_HANDLEまたはOCI_ERROR

OCIWideCharToUpper()

用途

wcによって指定されたワイドキャラクタ文字列を、指定されたロケールの対応する大文字(存在する場合)に変換します。対応する大文字が存在しない場合、wcそのものが戻されます。

構文

OCIWchar OCIWideCharToUpper ( void      *hndl, 
                              OCIWchar  wc );

パラメータ

hndl (IN/OUT)

キャラクタ・セットを判断するOCI環境ハンドルまたはユーザー・セッション・ハンドルです。

wc (IN)

大文字に変換するwcharです。

コメント

OCIEnvNlsCreate()関数のSQL CHARデータにOCI_UTF16IDが指定されている場合、エラーが発生します。

戻り値

wcharです。