OCIロケール関数

OCIロケール関数をリストし、説明します。

表23-2は、この項で説明しているOCIロケール関数を示しています。

Oracleロケールは、言語、地域および文字セット定義で構成されます。ロケールは、曜日と月の名前、および日付、時刻、数値、通貨の書式などの表記規則を決定します。グローバライズされたアプリケーションは、ユーザーのロケール設定および文化的規則に従います。たとえば、ロケールをドイツに設定すると、月日の名前がドイツ語で表示されます。

表23-2 OCIロケール関数 

関数 用途

OCINlsCharSetIdToName()

指定された文字セットIDからOracle Database文字セット名を戻します。

OCINlsCharSetNameToId()

指定されたOracle Database文字セット名のOracle Database文字セットIDを戻します。

OCINlsEnvironmentVariableGet()

NLS_LANGから文字セットIDを、またはNLS_NCHARから各国語文字セットIDを戻します。

OCINlsGetInfo()

OCI環境またはユーザー・セッション・ハンドルから、宛先バッファによってポイントされた配列に、指定サイズ内でロケール情報をコピーします。

OCINlsNumericInfoGet()

OCI環境ハンドルまたはユーザー・セッション・ハンドルから出力数値変数に、数値言語情報をコピーします。

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_SUCCESSOCI_INVALID_HANDLEまたはOCI_ERROR

OCINlsCharSetNameToId()

指定されたOracle Database文字セット名のOracle Database文字セットIDを戻します。

用途

指定されたOracle Database文字セット名のOracle Database文字セットIDを戻します。

構文

ub2 OCINlsCharSetNameToId ( void            *hndl, 
                            const OraText   *name );

パラメータ

hndl (IN/OUT)

OCI環境ハンドルまたはユーザー・セッション・ハンドルです。ハンドルが無効の場合、0 (ゼロ)が戻されます。

name (IN)

NULLで終了するOracle Database文字セット名へのポインタ。文字セット名が無効の場合、0 (ゼロ)が戻されます。

戻り値

指定された文字セット名およびOCIハンドルが有効の場合、文字セットID。それ以外の場合は、0が戻されます。

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の値が戻されます。

charset (IN)

取得する文字列データの文字セットIDを指定します。0 (ゼロ)の場合は、NLS_LANG値が使用されます。OCI_UTF16IDはこの引数に対する有効な値です。数値データの場合、この引数は無視されます。

rsize (OUT)

バイトで示した戻り値の長さです。

コメント

この関数の今後の機能拡張(他の値を環境変数から取得する)を考慮に入れ、出力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

関連トピック

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_SUCCESSOCI_INVALID_HANDLEまたはOCI_ERROR

関連トピック

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_SUCCESSOCI_INVALID_HANDLEまたはOCI_ERROR

関連トピック