31.2 OCIロケール関数
OCIロケール関数をリストし、説明します。
表31-2は、この項で説明しているOCIロケール関数を示しています。
Oracleロケールは、言語、地域および文字セット定義で構成されます。ロケールは、曜日と月の名前、および日付、時刻、数値、通貨の書式などの表記規則を決定します。グローバライズされたアプリケーションは、ユーザーのロケール設定および文化的規則に従います。たとえば、ロケールをドイツに設定すると、月日の名前がドイツ語で表示されます。
表31-2 OCIロケール関数
関数 | 用途 |
---|---|
指定された文字セットIDからOracle Database文字セット名を戻します。 |
|
指定されたOracle Database文字セット名のOracle Database文字セットIDを戻します。 |
|
|
|
OCI環境またはユーザー・セッション・ハンドルから、宛先バッファによってポイントされた配列に、指定サイズ内でロケール情報をコピーします。 |
|
OCI環境ハンドルまたはユーザー・セッション・ハンドルから出力数値変数に、数値言語情報をコピーします。 |
31.2.1 OCINlsCharSetIdToName()
指定された文字セットIDからOracle Database文字セット名を戻します。
用途
指定された文字セットIDからOracle Database文字セット名を戻します。
構文
sword OCINlsCharSetIdToName ( void *hndl, OraText *buf, size_t buflen ub2 id );
パラメータ
- hndl (IN/OUT)
-
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。ハンドルが無効の場合、関数は
OCI_INVALID_HANDLE
を戻します。 - buf (OUT)
-
宛先バッファを指します。関数が
OCI_SUCCESS
を戻す場合、パラメータには文字セット名にNULL
で終了する文字列が含まれています。 - buflen (IN)
-
宛先バッファのサイズです。Oracle Database文字セット名の格納を保証するには、
OCI_NLS_MAXBUFSZ
のサイズをお薦めします。宛先バッファのサイズが文字セット名の長さより小さい場合、関数はOCI_ERROR
を戻します。 - id (IN)
-
Oracle Database文字セットID。
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
。
31.2.2 OCINlsCharSetNameToId()
指定されたOracle Database文字セット名のOracle Database文字セットIDを戻します。
用途
指定されたOracle Database文字セット名のOracle Database文字セットIDを戻します。
構文
ub2 OCINlsCharSetNameToId ( void *hndl, const OraText *name );
パラメータ
戻り値
指定された文字セット名およびOCIハンドルが有効の場合、文字セットID。それ以外の場合は、0
が戻されます。
31.2.3 OCINlsEnvironmentVariableGet()
NLS_LANG
から文字セットIDを、またはNLS_NCHAR
から各国語文字セットIDを戻します。
用途
NLS_LANG
から文字セットIDを、またはNLS_NCHAR
から各国語文字セットIDを戻します。
構文
sword OCINlsEnvironmentVariableGet ( void *val, size_t size, ub2 item, ub2 charset, size_t *rsize );
パラメータ
- val (IN/OUT)
-
NLS_LANG
文字セットIDやNLS_NCHAR
文字セットIDなどのグローバリゼーション・サポート環境変数の値を戻します。 - size (IN)
-
指定した出力値のサイズを指定します。文字列データのみに適用できます。情報の各ピースの最大長は、
OCI_NLS_MAXBUFSZ
バイトです。数値データの場合、この引数は無視されます。 - item (IN)
-
グローバリゼーション・サポート環境変数から取得する値を指定します。次のいずれかの値です。
-
OCI_NLS_CHARSET_ID
:ub2
データ型のNLS_LANG
文字セットIDです。NLS_LANG
が設定されていない場合は、デフォルトの文字セットIDが戻されます(ASCII)。 -
OCI_NLS_NCHARSET_ID
:ub2
データ型のNLS_NCHAR
文字セットIDです。NLS_NCHAR
が設定されていない場合は、かわりにOCI_NLS_CHARSET_ID
の値が戻されます。
-
コメント
この関数の今後の機能拡張(他の値を環境変数から取得する)を考慮に入れ、出力val
のデータ型は、void
へのポインタになっています。文字列データはNULL
で終了しません。
この関数は環境ハンドルを受け入れないため、戻される文字セットIDおよび各国語文字セットは、OCI環境ハンドルに保存されている値ではなく、NLS_LANG
およびNLS_NCHAR
で指定した値です。OCI環境ハンドルで使用されている文字セットIDを取得するには、OCI_ATTR_ENV_CHARSET_ID
およびOCI_ATTR_ENV_NCHARSET_ID
のそれぞれに対してOCIAttrGet()
をコールします。
戻り値
OCI_SUCCESS
またはOCI_ERROR
。
関連トピック
31.2.4 OCINlsGetInfo()
OCI環境またはユーザー・セッション・ハンドルから、宛先バッファによってポイントされた配列に、指定サイズ内でロケール情報をコピーします。
用途
OCI環境またはユーザー・セッション・ハンドルから、宛先バッファによってポイントされた配列に、指定サイズ内でロケール情報を取得します。
構文
sword OCINlsGetInfo ( void *hndl, OCIError *errhp, OraText *buf, size_t buflen, ub2 item );
パラメータ
- hndl (IN/OUT)
-
オブジェクト・モードで初期化されたOCI環境ハンドルまたはユーザー・セッション・ハンドルです。
- errhp (IN/OUT)
-
OCIエラー・ハンドルです。エラーがある場合は、
errhp
に記録され、NULL
ポインタが戻されます。OCIErrorGet()
のコールによって診断情報を取得できます。 - buf (OUT)
-
宛先バッファへのポインタです。戻される文字列は
NULL
文字で終了します。 - buflen (IN)
-
宛先バッファのサイズです。情報の各ピースの最大長は、
OCI_NLS_MAXBUFSZ
バイトです。OCI_NLS_MAXBUFSIZE
:OCINlsGetInfo()
をコールする際、戻された情報を格納するためにバッファを割り当てる必要があります。バッファ・サイズは、問合せ対象の項目、および情報格納時に使用するエンコーディングによって異なります。開発者は、JA16SJISエンコーディングを使用して日本語でJanuary
を格納するために必要なバイト数を知っている必要はありません。OCINlsGetInfo
()によって戻される最大の項目をバッファが格納できるだけの大きさがあることが、OCI_NLS_MAXBUFSZ
属性によって保証されます。 - item (IN)
-
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_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
。
関連トピック
31.2.5 OCINlsNumericInfoGet()
OCI環境ハンドルまたはユーザー・セッション・ハンドルから出力数値変数に、数値言語情報をコピーします。
用途
OCI環境ハンドルまたはユーザー・セッション・ハンドルから数値言語情報を取得し、出力数値変数に格納します。
構文
sword OCINlsNumericInfoGet ( void *hndl, OCIError *errhp, sb4 *val, ub2 item );
パラメータ
- hndl (IN/OUT)
-
OCI環境ハンドルまたはユーザー・セッション・ハンドルです。ハンドルが無効の場合、
OCI_INVALID_HANDLE
が戻されます。 - errhp (IN/OUT)
-
OCIエラー・ハンドルです。エラーがある場合は、
errhp
に記録され、NULL
ポインタが戻されます。OCIErrorGet()
のコールによって診断情報を取得できます。 - val (OUT)
-
出力数値変数へのポインタです。関数が
OCI_SUCCESS
を戻す場合、パラメータには要求されたグローバリゼーション・サポート数値情報が含まれています。 - item (IN)
-
OCI環境ハンドルから取得する項目を指定します。次のいずれかの値です。
-
OCI_NLS_CHARSET_MAXBYTESZ
: OCI環境ハンドルまたはセッション・ハンドルの文字セットの最大文字バイト・サイズ。 -
OCI_NLS_CHARSET_FIXEDWIDTH
: 固定幅文字セットの場合は文字バイト・サイズ。可変幅文字セットの場合は0
。
戻り値
OCI_SUCCESS
、OCI_INVALID_HANDLE
またはOCI_ERROR
。
関連トピック