広く使用されている7ビットまたは8ビットのASCIIおよびEBCDICのキャラクタ・セットは、アルファベットを表すには十分ですが、日本語のようなアジアの言語には数千もの文字が含まれるものがあります。これらの言語では、1文字を表すために16ビット(2バイト)が必要です。Oracleではこうした様々な言語がどのように処理されるかについて説明します。
Oracleには、シングルバイトおよびマルチバイトの文字データを処理し、キャラクタ・セット間で変換できるように、グローバリゼーション・サポートが用意されています。また、アプリケーションを異なる言語環境で実行することもできます。グローバリゼーション・サポートでは、数値書式および日付書式はユーザー・セッション用に指定された言語規則に自動的に適応します。したがって、グローバリゼーション・サポートにより、世界中のユーザーがそれぞれの母国語でOracleとやりとりできます。
様々なグローバリゼーション・サポート・パラメータを指定して、言語によって異なる機能の操作を制御できます。これらのパラメータのデフォルト値は、Oracleの初期化ファイルで設定できます。表3-9は、それぞれのグローバリゼーション・サポート・パラメータの指定内容を示しています。
表3-9 グローバリゼーション・サポート・パラメータ
グローバリゼーション・サポート・パラメータ | 指定内容 |
---|---|
言語によって異なる表記規則 |
|
地域によって異なる表記規則 |
|
日付書式 |
|
日および月の名前に使用する言語 |
|
10進数文字およびグループ・セパレータ |
|
各国通貨記号 |
|
ISO通貨記号 |
|
ソートの順序 |
主なパラメータは、Globalization Support_LANGUAGEおよびGlobalization Support_TERRITORYです。Globalization Support_LANGUAGEでは、言語によって異なる次の機能のデフォルト値を指定します。
サーバー・メッセージに使用する言語
日および月の名前に使用する言語
ソートの順序
Globalization Support_TERRITORYでは、地域によって異なる次の機能のデフォルト値を指定します。
日付書式
小数点文字
グループ・セパレータ
各国通貨記号
ISO通貨記号
Globalization Support_LANGパラメータを次のように指定して、ユーザー・セッション用に言語ごとに異なるグローバリゼーション・サポート機能の操作を制御できます。
Globalization Support_LANG = <language>_<territory>.<character set>
languageはユーザー・セッション用のGlobalization Support_LANGUAGEの値、territoryはGlobalization Support_TERRITORYの値、character setは端末に使用されるコード体系を指定します。コード体系(通常はキャラクタ・セットまたはコード・ページと呼ばれる)は、端末で表示可能なキャラクタ・セットに対応する数値コードの範囲です。これには、端末との通信を制御するコードも含まれています。
Globalization Support_LANGは、環境変数(またはシステムでそれに相当するもの)として定義します。たとえば、Cシェルを使用するUNIXでは、Globalization Support_LANGを次のように定義できます。
setenv Globalization Support_LANG French_France.WE8ISO8859P1
セッション中にグローバリゼーション・サポート・パラメータを変更するには、ALTER
SESSION
文を次のように使用します。
ALTER SESSION SET <Globalization Support_parameter> = <value>
Oracleプリコンパイラでは、グローバリゼーション・サポート機能がすべてサポートされているため、アプリケーションではOracleデータベースに格納されている多言語のデータを処理できます。たとえば、外国語の文字変数を宣言し、それをINSTRB
、LENGTHB
およびSUBSTRB
などの文字列ファンクションに渡すことができます。これらのファンクションにはそれぞれ、INSTR
、LENGTH
およびSUBSTR
ファンクションと同じ構文がありますが、文字単位ではなく、バイト単位で機能します。
Globalization Support_INITCAP、Globalization Support_LOWERおよびGlobalization Support_UPPERファンクションを使用して、大文字小文字変換の特別なインスタンスを処理できます。また、Globalization Support_SORTファンクションを使用して、バイナリ順序ではなく、言語上の順序に基づいてWHERE句の比較を指定できます。グローバリゼーション・サポート・パラメータをTO_CHAR
, TO_DATE
およびTO_NUMBERファンクションに渡すこともできます。グローバリゼーション・サポートの詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。