• 検索結果がありません。

OCI_Nls_MaxBufSz

ドキュメント内 Oracle8i NLS ガイド, リリース8.1 (ページ 106-109)

NLS言語情報の取出し

文字列操作

詳細は、『Oracle8i コール・インタフェース・プログラマーズ・ガイド』および『Oracle8i データ・カートリッジ開発者ガイド』を参照してください。

NLS 言語情報の取出しのサンプル・コード 言語情報の取出しのサンプル・コード 言語情報の取出しのサンプル・コード 言語情報の取出しのサンプル・コード

次に、情報を取り出し、そのエラーをチェックする簡単な例を示します。

sword MyPrintLinguisticName(envhp, errhp) OCIEnv *envhp;

OCIError *errhp;

{

OraText infoBuf[OCI_NLS_MAXBUFSZ];

sword ret;

ret = OCINlsGetInfo(envhp, /* environment handle */

errhp, /* error handle */

infoBuf, /* destination buffer */

(size_t) OCI_NLS_MAXBUFSZ, /* buffer size */

(ub2) OCI_NLS_LINGUISTIC_NAME); /* item */

if (ret != OCI_SUCCESS) {

checkerr(errhp, ret, OCI_HTYPE_ERROR);

ret = OCI_ERROR;

} else {

printf("NLS linguistic: %s\n", infoBuf);

}

return(ret);

}

文字列操作 文字列操作 文字列操作 文字列操作

文字列操作では、マルチバイト文字列とワイド・キャラクタ文字列の2種類のデータ構造が サポートされています。マルチバイト文字列は、Oracleのネイティブ・キャラクタ・セット でコード化されており、マルチバイト文字列を処理する関数は、その文字列を1つの単位と みなします。ワイド・キャラクタ文字列のwchar関数は、文字列をより柔軟に操作し、文字 ベースおよび文字列ベースの操作をサポートします。

ワイド・キャラクタのデータ型はOracle固有のデータ型です。ANSI/ISOのC規格で定義 されているwchar_tと混同しないでください。Oracleのワイド・キャラクタは、すべてのプ ラットフォームで常に4バイトですが、wchar_tは、インプリメンテーションおよびプラッ トフォームに依存します。Oracleのワイド・キャラクタは、マルチバイト文字を正規化し固 定幅コードを簡単に処理できるようにすることがねらいです。これによって、Oracleのワイ

文字列操作

ド・キャラクタとネイティブ・キャラクタ・セットの間のラウンドトリップ変換が保証され ます。

文字列操作は、次のように分類できます。

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

文字の分類

文字の変換

表示長の計算

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

5-2 OCI文字列操作コール文字列操作コール文字列操作コール文字列操作コール 関数コール

関数コール関数コール

関数コール 説明説明説明説明

OCIMultiByteToWideChar() NULLで終了する文字列全体をwchar書式に変換します。

OCIMultiByteInSizeTo

WideChar() 文字列の一部をwchar書式に変換します。

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

OCIWideCharInSizeTo

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

OCIWideCharToLower() 指定されたロケールに小文字の文字マッピングがある場合、そのワイド・キャラ

クタを小文字で戻します。小文字の文字マッピングがない場合は、そのワイド・

キャラクタを戻します。

OCIWideCharToUpper() 指定されたロケールに大文字の文字マッピングがある場合、そのワイド・キャラ

クタを大文字で戻します。大文字の文字マッピングがない場合は、そのワイド・

キャラクタを戻します。

OCIWideCharStrcmp() 2つのワイド・キャラクタ文字列をバイナリ、言語上の方法または大文字と小文

字を区別しない方法で比較します。

OCIWideCharStrncmp() str1の先頭len1バイトとstr2の先頭len2バイトのみが比較されることを除けば、

OCIWideCharStrcmp()に似ていて、2つのマルチバイト文字列をバイナリ、言語 上の文法または大文字と小文字を区別しない方法で比較します。

OCIWideCharStrcat() wsrcstrで示された文字列のコピーを追加します。その後、結果文字列の文字数を 戻します。

OCIWideCharStrchr() wstrで示された文字列の中で、最初に出現するwcを検索します。正常終了した 場合は、wcharへのポインタを戻します。

OCIWideCharStrcpy() wsrcstrで示されたwchar文字列をwdststrで示された配列にコピーします。その 後、コピーされた文字数を戻します。

OCIWideCharStrlen() wstrで示されたwchar文字列にある文字数を計算し、その数を戻します。

文字列操作

ドキュメント内 Oracle8i NLS ガイド, リリース8.1 (ページ 106-109)