表22-2は、この項で説明しているOCIロケール関数を示しています。
Oracleロケールは、言語、地域およびキャラクタ・セット定義で構成されます。ロケールは、曜日と月の名前、および日付、時刻、数値、通貨の書式などの表記規則を決定します。グローバライズされたアプリケーションは、ユーザーのロケール設定および文化的規則に従います。たとえば、ロケールをドイツに設定すると、月日の名前がドイツ語で表示されます。
表22-2 OCIロケール関数
関数 | 用途 |
---|---|
|
指定されたキャラクタ・セットIDからOracle Databaseキャラクタ・セット名を戻します。 |
|
指定されたOracle Databaseキャラクタ・セット名のOracle Databaseキャラクタ・セットIDを戻します。 |
「OCINlsEnvironmentVariableGet()」 |
|
|
OCI環境またはユーザー・セッション・ハンドルから、宛先バッファによってポイントされた配列に、指定サイズ内でロケール情報をコピーします。 |
|
OCI環境ハンドルまたはユーザー・セッション・ハンドルから出力数値変数に、数値言語情報をコピーします。 |
パラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。ハンドルが無効の場合、関数はOCI_INVALID_HANDLE
を戻します。
宛先バッファを指します。関数がOCI_SUCCESS
を戻す場合、パラメータにはキャラクタ・セット名にNULL
で終了する文字列が含まれています。
宛先バッファのサイズです。Oracle Databaseキャラクタ・セット名の格納を保証するには、OCI_NLS_MAXBUFSZ
のサイズをお薦めします。宛先バッファのサイズがキャラクタ・セット名の長さより小さい場合、関数はOCI_ERROR
を戻します。
Oracle Databaseキャラクタ・セットID。
構文
sword OCINlsEnvironmentVariableGet ( void *val, size_t size, ub2 item, ub2 charset, size_t *rsize );
パラメータ
NLS_LANG
キャラクタ・セットIDやNLS_NCHAR
キャラクタ・セットIDなどのグローバリゼーション・サポート環境変数の値を戻します。
指定した出力値のサイズを指定します。文字列データのみに適用できます。情報の各ピースの最大長は、OCI_NLS_MAXBUFSZ
バイトです。数値データの場合、この引数は無視されます。
グローバリゼーション・サポート環境変数から取得する値を指定します。次のいずれかの値です。
OCI_NLS_CHARSET_ID
: ub2
データ型のNLS_LANG
キャラクタ・セットID。
OCI_NLS_NCHARSET_ID
: ub2
データ型のNLS_NCHAR
キャラクタ・セットID。
取得する文字列データのキャラクタ・セットIDを指定します。0
(ゼロ)の場合は、NLS_LANG
値が使用されます。OCI_UTF16ID
はこの引数に対する有効な値です。数値データの場合、この引数は無視されます。
バイトで示した戻り値の長さです。
コメント
NLS_NCHAR
が設定されていない場合、各国語キャラクタ・セットIDは、グローバリゼーション・サポート規則に従ってキャラクタ・セットIDと同じになります。NLS_LANG
が設定されていない場合は、デフォルトのキャラクタ・セットIDが戻されます。
この関数の今後の機能拡張(他の値を環境変数から取得する)を考慮に入れ、出力val
のデータ型は、void
へのポインタになっています。文字列データはNULL
で終了しません。
この関数は環境ハンドルを受け入れないため、戻されるキャラクタ・セットIDおよび各国語キャラクタ・セットは、OCI環境ハンドルに保存されている値ではなく、NLS_LANG
およびNLS_NCHAR
で指定した値です。OCI環境ハンドルで使用されているキャラクタ・セットを取得するには、OCI_ATTR_ENV_CHARSET
およびOCI_ATTR_ENV_NCHARSET
のそれぞれに対してOCIAttrGet()
をコールします。
パラメータ
オブジェクト・モードで初期化されたOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
OCIエラー・ハンドルです。エラーがある場合は、errhp
に記録され、NULL
ポインタが戻されます。OCIErrorGet()のコールによって診断情報を取得できます。
宛先バッファへのポインタです。戻される文字列はNULL
文字で終了します。
宛先バッファのサイズです。情報の各ピースの最大長は、OCI_NLS_MAXBUFSZ
バイトです。
OCI_NLS_MAXBUFSIZE
: OCINlsGetInfo()
をコールする際、戻された情報を格納するためにバッファを割り当てる必要があります。バッファ・サイズは、問合せ対象の項目、および情報格納時に使用するエンコーディングによって異なります。開発者は、JA16SJISエンコーディングを使用して日本語でJanuary
を格納するために必要なバイト数を知っている必要はありません。OCINlsGetInfo
()によって戻される最大の項目をバッファが格納できるだけの大きさがあることが、OCI_NLS_MAXBUFSZ
属性によって保証されます。
OCI環境ハンドル内のどの項目を戻すかを指定します。これは次の値のいずれかです。
OCI_NLS_DAYNAME1
: 月曜日のネイティブの名前OCI_NLS_DAYNAME2
: 火曜日のネイティブの名前OCI_NLS_DAYNAME3
: 水曜日のネイティブの名前OCI_NLS_DAYNAME4
: 木曜日のネイティブの名前OCI_NLS_DAYNAME5
: 金曜日のネイティブの名前OCI_NLS_DAYNAME6
: 土曜日のネイティブの名前OCI_NLS_DAYNAME7
: 日曜日のネイティブの名前OCI_NLS_ABDAYNAME1
: 月曜日のネイティブの略称OCI_NLS_ABDAYNAME2
: 火曜日のネイティブの略称OCI_NLS_ABDAYNAME3
: 水曜日のネイティブの略称OCI_NLS_ABDAYNAME4
: 木曜日のネイティブの略称OCI_NLS_ABDAYNAME5
: 金曜日のネイティブの略称OCI_NLS_ABDAYNAME6
: 土曜日のネイティブの略称OCI_NLS_ABDAYNAME7
: 日曜日のネイティブの略称OCI_NLS_MONTHNAME1
: 1月のネイティブの名前OCI_NLS_MONTHNAME2
: 2月のネイティブの名前OCI_NLS_MONTHNAME3
: 3月のネイティブの名前OCI_NLS_MONTHNAME4
: 4月のネイティブの名前OCI_NLS_MONTHNAME5
: 5月のネイティブの名前OCI_NLS_MONTHNAME6
: 6月のネイティブの名前OCI_NLS_MONTHNAME7
: 7月のネイティブの名前OCI_NLS_MONTHNAME8
: 8月のネイティブの名前OCI_NLS_MONTHNAME9
: 9月のネイティブの名前OCI_NLS_MONTHNAME10
: 10月のネイティブの名前OCI_NLS_MONTHNAME11
: 11月のネイティブの名前OCI_NLS_MONTHNAME12
: 12月のネイティブの名前OCI_NLS_ABMONTHNAME1
: 1月のネイティブの略称OCI_NLS_ABMONTHNAME2
: 2月のネイティブの略称OCI_NLS_ABMONTHNAME3
: 3月のネイティブの略称OCI_NLS_ABMONTHNAME4
: 4月のネイティブの略称OCI_NLS_ABMONTHNAME5
: 5月のネイティブの略称OCI_NLS_ABMONTHNAME6
: 6月のネイティブの略称OCI_NLS_ABMONTHNAME7
: 7月のネイティブの略称OCI_NLS_ABMONTHNAME8
: 8月のネイティブの略称OCI_NLS_ABMONTHNAME9
: 9月のネイティブの略称OCI_NLS_ABMONTHNAME10
: 10月のネイティブの略称OCI_NLS_ABMONTHNAME11
: 11月のネイティブの略称OCI_NLS_ABMONTHNAME12
: 12月のネイティブの略称OCI_NLS_YES
: 肯定的な応答のネイティブの文字列OCI_NLS_NO
: ネイティブの否定的な応答OCI_NLS_AM
: AMに相当するネイティブの文字列OCI_NLS_PM
: PMに相当するネイティブの文字列OCI_NLS_AD
: ADに相当するネイティブの文字列OCI_NLS_BC
: BCに相当するネイティブの文字列OCI_NLS_DECIMAL
: 小数点文字OCI_NLS_GROUP
: グループ・セパレータOCI_NLS_DEBIT
: ネイティブの借方記号OCI_NLS_CREDIT
: ネイティブの貸方記号OCI_NLS_DATEFORMAT
: Oracle Databaseの日付書式OCI_NLS_INT_CURRENCY
: 国際通貨記号OCI_NLS_DUAL_CURRENCY
: 二重通貨記号OCI_NLS_LOC_CURRENCY
: 各国通貨記号OCI_NLS_LANGUAGE
: 言語名OCI_NLS_ABLANGUAGE
: 言語名の略称OCI_NLS_TERRITORY
: 地域名OCI_NLS_CHARACTER_SET
: キャラクタ・セット名OCI_NLS_LINGUISTIC_NAME
: 言語ソート名OCI_NLS_CALENDAR
: カレンダ名OCI_NLS_WRITING_DIR
: 言語の書込み方向OCI_NLS_ABTERRITORY
: 地域の略称OCI_NLS_DDATEFORMAT
: Oracle Databaseのデフォルト日付書式OCI_NLS_DTIMEFORMAT
: Oracle Databaseのデフォルト時刻書式OCI_NLS_SFDATEFORMAT
: ローカルの日付書式OCI_NLS_SFTIMEFORMAT
: ローカルの時刻書式OCI_NLS_NUMGROUPING
: 数値のグループ・フィールドOCI_NLS_LISTSEP
: リスト・セパレータOCI_NLS_MONDECIMAL
: 通貨の小数点文字OCI_NLS_MONGROUP
: 通貨のグループ・セパレータOCI_NLS_MONGROUPING
: 通貨のグループ・フィールドOCI_NLS_INT_CURRENCYSEP
: 国際通貨セパレータパラメータ
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。ハンドルが無効の場合、OCI_INVALID_HANDLE
が戻されます。
OCIエラー・ハンドルです。エラーがある場合は、errhp
に記録され、NULL
ポインタが戻されます。OCIErrorGet()のコールによって診断情報を取得できます。
出力数値変数へのポインタです。関数がOCI_SUCCESS
を戻す場合、パラメータには要求されたグローバリゼーション・サポート数値情報が含まれています。
OCI環境ハンドルから取得する項目を指定します。次のいずれかの値です。
OCI_NLS_CHARSET_MAXBYTESZ
: OCI環境ハンドルまたはセッション・ハンドルのキャラクタ・セットの最大文字バイト・サイズ。
OCI_NLS_CHARSET_FIXEDWIDTH
: 固定幅キャラクタ・セットの場合は文字バイト・サイズ。可変幅キャラクタ・セットの場合は0
。