12 ロケール・データのカスタマイズ
この章では、ロケール・データのカスタマイズ方法について説明します。この章の内容は、次のとおりです。
12.1 Oracle Locale Builderユーティリティの概要
Oracle Locale Builderは、ロケール・データをカスタマイズするための簡単で効率的な方法を提供します。ロケール固有のデータを簡単に表示、変更および定義できるGUIも提供します。Oracle Locale Builderではテキストおよびバイナリ定義ファイルからデータを抽出して、読取り可能な形式で表示するため、ユーザーはこれらのファイルで使用されている形式を気にせずに情報を処理できます。
Oracle Locale Builderでは、言語、地域、文字セットおよび言語ソートの4種類のロケール定義を管理します。ユーザー定義文字やカスタマイズされた言語規則もサポートします。既存のテキスト定義ファイルやバイナリ定義ファイルの定義を表示して、変更を加えたり、独自の定義を作成できます。
この項では、次の項目について説明します。
12.1.1 Oracle Locale Builder用のUnicodeフォントの構成
Oracle Locale Builderでは、多くの機能でUnicode文字が使用されます。たとえば、Unicodeコード・ポイントへのローカル文字コード・ポイントのマッピングが表示されます。Oracle Locale Builderは、文字を表示するためにJavaランタイムで構成される論理フォントSerifおよびSansSerifに依存します。構成されたフォントで文字を表現できない場合は、通常、その文字は空の四角として表示されます。Oracle Locale Builderユーザー・インタフェースで一部の文字を適切に表示できない場合、不足している文字をサポートする追加の物理フォントを含めるように、論理フォントを再構成する必要がある場合があります。
ノート:
Oracle Locale Builderで使用されるJavaランタイムは、Oracleホーム・ディレクトリのjdk/jreサブディレクトリにあります。
関連項目:
Javaランタイムで使用されるフォント構成ファイルの詳細は、「フォント構成ファイル」(https://docs.oracle.com/javase/8/docs/technotes/guides/intl/fontconfig.html)を参照してください。
12.1.2 Oracle Locale Builderのユーザー・インタフェース
Oracle Locale Builderを起動する前に、ORACLE_HOME
パラメータが設定されていることを確認してください。
UNIXオペレーティング・システム上でOracle Locale Builderを起動するには、$ORACLE_HOME/nls/lbuilder
ディレクトリに変更して次のコマンドを発行します。
% ./lbuilder
Windowsオペレーティング・システム上では、「スタート」メニューからOracle Locale Builderを起動します。「スタート」→「プログラム」→Oracle-OraHome10→「コンフィグレーションおよび移行ツール」→「Locale Builder」を選択します。DOSプロンプトから%ORACLE_HOME%\nls\lbuilder
ディレクトリに移動してlbuilder.bat
コマンドを実行する方法もあります。
Oracle Locale Builderを起動すると、次の画面が表示されます。
12.1.3 Oracle Locale Builderのページとダイアログ・ボックス
Oracle Locale Builderでの特定のタスクを使用する前に、次のようなタブ・ページとダイアログ・ボックスについて理解しておく必要があります。
-
ノート:
Oracle Locale Builderには、オンライン・ヘルプが付属しています。
12.1.3.1 「既存の定義」ダイアログ・ボックス
「新規言語」、「新規地域」、「新規文字セット」または「新規言語ソート」を選択すると、最初に「一般」タブ・ページが表示されます。「既存の定義の表示」をクリックすると、「既存の定義」ダイアログ・ボックスが表示されます。
「既存の定義」ダイアログ・ボックスでは、ロケール・オブジェクトを名前でオープンできます。起動する特定の言語、地域、言語ソート(照合)または文字セットがわかっている場合は、表示されている名前をクリックします。たとえば、次の図に示すように、AMERICAN
言語定義ファイルをオープンできます。
「AMERICAN
」を選択すると、lx00001.nlb
ファイルがオープンします。NLBファイルは、特定の言語、地域、文字セットまたは言語ソートの設定を含むバイナリ・ファイルです。
言語と地域の略称は参照用のため、オープンできません。
12.1.3.2 「セッション・ログ」ダイアログ・ボックス
「ツール」→
「ログの表示」を選択すると、「セッション・ログ」ダイアログ・ボックスが表示されます。「セッション・ログ」ダイアログ・ボックスには、現行のセッションで行われた処理が表示されます。「ログの保存」をクリックすると、すべての変更のレコードが保存されます。次の画面は、セッション・ログの例を示しています。
12.1.3.3 「NLTのプレビュー」タブ・ページ
NLT(National Language Text)ファイルは、ファイル拡張子が.nlt
のXMLファイルで、特定の言語、地域、文字セットまたは言語ソートの設定を格納します。「NLTのプレビュー」タブ・ページには、ファイルが読取り可能な書式で表示されるため、変更内容が適切かどうかを確認できます。「NLTのプレビュー」タブ・ページからはNLTファイルを変更できません。NLTファイルを変更するには、Oracle Locale Builderで提供される特定のツールとプロシージャを使用する必要があります。
次の画面は、ユーザー定義言語AMERICAN FRENCH
の「NLTのプレビュー」タブ・ページの例を示しています。
12.1.3.4 ファイルを開くダイアログ・ボックス
12.2 Oracle Locale Builderを使用した新規言語定義の作成
この項では、フランス語に基づいて新規言語を作成する方法について説明します。この新しい言語は、AMERICAN
FRENCH
と呼ぶことにします。最初に、「既存の定義」ダイアログ・ボックスからFRENCH
をオープンします。次に、「一般」タブ・ページで言語名をAMERICAN FRENCHに変更し、「言語の略称」を「AF」に変更します。他の設定はデフォルト値のままにします。次の画面は、この結果の「一般」タブ・ページを示しています。
-
名前にはASCII文字のみを使用する必要があります。
-
名前は文字で開始する必要があります。
-
言語、地域および文字セット名にはアンダースコアを使用できません。
ユーザー定義言語の場合、「言語ID」フィールドの有効範囲は1,000から10,000です。Oracle Locale Builderで提供される値を受け入れるか、この範囲内の値を指定できます。
ノート:
特定のID範囲は、ユーザー定義のLANGUAGE
、TERRITORY
、CHARACTER
SET
、MONOLINGUAL COLLATION
およびMULTILINGUAL
COLLATION
の定義に対してのみ有効です。この章の各項では、各タイプのユーザー定義ロケール・オブジェクトに関係する範囲が指定されています。
次の画面は、「月名」タブ・ページを使用して月名を設定する方法を示しています。
すべての名前は、NLTファイルに表示されているとおりに示されます。先頭の文字を大文字にするかどうかに対して「はい」を選択すると、アプリケーションでは月の名前の先頭に大文字が使用されますが、「月名」タブ・ページでは大文字で表示されません。
次の画面は、「曜日」タブ・ページを示しています。
ユーザー定義言語に曜日名を選択できます。すべての名前は、NLTファイルに表示されているとおりに示されます。先頭の文字を大文字にするかどうかに対して「はい」を選択すると、アプリケーションでは曜日名の先頭に大文字が使用されますが、曜日タブ・ページでは大文字で表示されません。
次の画面は、「共通情報」タブ・ページを示しています。
現在の言語に関連付けられている地域、文字セット、Windows用文字セットおよび言語ソートを表示できます。通常、最も適切な項目または最も一般的に使用されている項目が、最初に表示されます。たとえば、FRENCH言語では、共通地域はFRANCE、BELGIUM、CANADAおよびDJIBOUTIで、サポートされている文字セットは、WE8ISO8859P1、WE8MSWIN1252、AL32UTF8およびWE8ISO8859P15です。Windows環境では、WE8ISO8859P1よりもWE8MSWIN1252が一般的であるため、最初に表示されます。
12.3 Oracle Locale Builderを使用した新規地域定義の作成
-
地域名の割当て
-
カレンダ、数値、日付、時刻および通貨の各書式の選択
次の画面は、「地域名」としてREDWOOD SHORES、「地域ID」として1001、「地域の略称」としてRSが設定されている「一般」タブ・ページを示しています。
ユーザー定義地域に対する地域IDの有効範囲は、1000から10000です。
次の画面は、「暦」タブ・ページでのカレンダ書式の設定方法を示しています。
月曜日が週の開始日として設定され、暦年の第1週がISO週として設定されています。
関連項目:
-
週の開始日と暦年の第1週を選択する方法の詳細は、「カレンダ書式」を参照してください
-
カレンダ自体をカスタマイズする方法は、「NLSカレンダ・ユーティリティを使用したカレンダのカスタマイズ」を参照してください
リストから書式を選択すると、書式の例が表示されます。このケースでは、短い日付書式がDD-MM-YY、短い時間書式がHH24:MI:SS、Oracle日付書式がDD-MM-YY、長い日付書式がfmDay, Month dd, yyyyに設定されています。タイムスタンプ・タイムゾーン書式は設定されていません。
ドロップダウン・メニューから選択せずに、独自のフォーマットを入力することもできます。
関連項目:
次の画面は、「数値」タブ・ページを示しています。
「小数点記号」にはピリオドが選択されています。負の記号の位置は数値の左に設定されています。数値グループ・セパレータはカンマです。数値グループ化は3桁、リスト・セパレータはカンマ、測定法はメトリック、丸め指定は4に指定されています。
リストの値を使用せずに、独自の値を入力することもできます。
リストから書式を選択すると、書式の例が表示されます。
関連項目:
次の画面は、「通貨」タブ・ページでの通貨書式の設定方法を示しています。
各国通貨記号には$が設定されています。代替通貨記号はユーロ記号です。通貨表記には、各国通貨記号、借方記号および数値が順に並びます。「小数点記号」はピリオド、「グループ・セパレータ」はカンマ、通貨数値のグループ化は3です。通貨の精度、つまり小数点以下の桁数は3です。貸方記号は+、借方記号は-です。国際通貨セパレータは空白であるため、フィールドには表示されていません。国際通貨記号(ISO通貨記号)はUSDです。Oracle Locale Builderには、ユーザーが選択した通貨書式の例が表示されます。
リストを使用せずに、独自の値を入力することもできます。
関連項目:
次の画面は、「共通情報」タブ・ページを示しています。
現在の地域の共通言語と共通タイム・ゾーンを表示できます。たとえば、地域がCANADAの場合、共通言語はENGLISH、CANADIAN FRENCHおよびFRENCHです。共通タイム・ゾーンは、America/Montreal、America/St_Johns、America/Halifax、America/Winnipeg、America/Regina、America/EdmontonおよびAmerica/Vancouverです。
12.4 Oracle Locale Builderを使用したコード・チャートの表示
Oracle Locale Builderでは、文字セットのコード・チャートを表示して印刷できます。Oracle Locale Builderの初期画面から「ファイル」→
「新規」→
「文字セット」を選択します。次の画面が表示されます。
「既存の定義の表示」をクリックします。表示する文字セットを選択します。次の画面は、US7ASCIIが選択されている「既存の定義」ダイアログ・ボックスを示しています。
「開く」をクリックして文字セットを選択します。次の画面は、US7ASCIIが選択された場合の「一般」タブ・ページを示しています。
「文字データのマッピング」タブを選択します。次の画面は、US7ASCIIの「文字データのマッピング」タブ・ページを示しています。
「コード・チャートの表示」をクリックします。次の画面は、US7ASCIIのコード・チャートを示しています。
このコード・チャートは、ローカル文字セットでの各文字のエンコーディング値、各文字に関連付けられた絵文字、およびUnicode値を示しています。
コード・チャートを印刷する場合は、「ページの印刷」をクリックします。
12.5 Oracle Locale Builderを使用した新規文字セット定義の作成
特定のユーザーのニーズにあわせて文字セットをカスタマイズできます。エンコードされた既存の文字セット定義を拡張できます。ユーザー定義文字は、多くの場合、次のような文字要素を表現する特殊文字をエンコードするために使用されます。
-
固有名
-
既存の文字セット規格で定義されていない旧漢字
-
ベンダー固有の文字
-
ユーザーが新たに定義した記号または文字
この項では、Oracle Databaseでユーザー定義文字がどのようにサポートされているかを説明します。次のトピックが含まれています:
12.5.1 ユーザー定義文字(UDC)と文字セット
一般的に、ユーザー定義文字は東アジア諸国の文字セットでサポートされています。東アジア諸国の文字セットには、ユーザー定義文字を使用するために、コード・ポイントの予約域が少なくとも1つ用意されています。たとえば、日本語シフトJISでは、1880のコード・ポイントがユーザー定義文字用に確保されています。表12-1を参照してください。
表12-1 シフトJISのユーザー定義文字の範囲
日本語シフトJISのユーザー定義文字の範囲 | コード・ポイント数 |
---|---|
F040-F07E、F080-F0FC |
188 |
F140-F17E、F180-F1FC |
188 |
F240-F27E、F280-F2FC |
188 |
F340-F37E、F380-F3FC |
188 |
F440-F47E、F480-F4FC |
188 |
F540-F57E、F580-F5FC |
188 |
F640-F67E、F680-F6FC |
188 |
F740-F77E、F780-F7FC |
188 |
F840-F87E、F880-F8FC |
188 |
F940-F97E、F980-F9FC |
188 |
表12-2に示すOracle Database文字セットには、ユーザー定義文字をサポートする事前定義済の範囲が含まれています。
表12-2 ユーザー定義文字の範囲を含むOracle Databaseの文字セット
文字セット名 | ユーザー定義文字に使用可能なコード・ポイント数 |
---|---|
JA16DBCS |
4370 |
JA16EBCDIC930 |
4370 |
JA16SJIS |
1880 |
JA16SJISYEN |
1880 |
KO16DBCS |
1880 |
KO16MSWIN949 |
1880 |
ZHS16DBCS |
1880 |
ZHS16GBK |
2149 |
ZHT16DBCS |
6204 |
ZHT16MSWIN950 |
6217 |
12.5.2 Oracle Databaseの文字セット変換アーキテクチャ
特定の文字を表すコード・ポイントの値は、文字セットによって異なります。次の図に、日本語の漢字を示します。
次の表に、この文字が様々な文字セットでどのようにエンコードされるかを示します。
Unicodeエンコーディング | JA16SJISエンコーディング | JA16EUCエンコーディング | JA16DBCSエンコーディング |
---|---|---|---|
4E9C |
889F |
B0A1 |
4867 |
Oracle Databaseでは、すべての文字セットをUnicode のコード・ポイントの見地から定義しています。つまり、それぞれの文字はUnicode のコード値として定義されています。中間フォームとしてUnicodeを使用することによって、ユーザーが意識することなく文字変換が行われます。たとえば、JA16SJISのクライアントがJA16EUCのデータベースに接続する場合、前の図に示されているJA16SJISのクライアントから入力した日本語の漢字のコード・ポイント値は889Fとなります。この文字は内部的にUnicode(コード・ポイント値は4E9C)に変換された後、JA16EUC(コード・ポイント値はB0A1)に変換されます。
12.5.3 Unicode のPrivate Use Area
Unicodeでは、Private Use Area(PUA)用にコード・ポイントE000からF8FFの範囲が予約されています。PUAは、エンド・ユーザーまたはベンダーがプライベートで使用する文字を定義するためのものです。
ユーザー定義文字は、標準文字と同様に中間フォームとしてUnicode のPUAを使用して、2つのOracle Database文字セット間で変換されます。
12.5.4 文字セット間でのユーザー定義文字のクロス・リファレンス
ユーザー定義文字を複数のオペレーティング・システムにまたがって登録する場合は、異なる文字セット間のクロス・リファレンスが必要になります。クロス・リファレンスにより、文字セットがUnicode PUAの値にマッピングされ、ユーザー定義文字を異なる文字セット間で確実に正しく変換できます。
たとえば、ユーザー定義文字を日本語シフトJISのオペレーティング・システムと日本語IBMホスト・オペレーティング・システムの両方に登録する場合、この文字に対して、シフトJISのオペレーティング・システムではF040コード・ポイント、IBMホスト・オペレーティング・システムでは6941コード・ポイントの割当てができます。これによって、文字セットJA16SJISとJA16DBCSの間で、この文字が正しくマップされます。
Oracle Locale Builderを使用して文字セット定義を表示すると、ユーザー定義文字のクロス・リファレンス情報を検索できます。たとえば、シフトJISのUDC値F040とIBMホストのUDC値6941が、同じUnicode PUA値E000にマップされていることがわかります。
関連項目:
12.5.5 既存の文字セットから新規文字セットを作成する際のガイドライン
デフォルトの場合、Oracle Locale Builderは次に使用可能な文字セットIDを生成します。独自の文字セットIDを選択することもできます。文字セット定義用NLTファイルのネーミングには、次の書式を使用します。
lx2
dddd
.nlt
dddd
は、16進数で4桁の文字セットIDです。
文字セットを変更する場合は、次のガイドラインに従ってください。
-
既存の文字を再マップしないでください。
-
すべての文字のマッピングは一意であることが必要です。
-
新規文字は、Unicodeのプライベート使用範囲の
e000-f4ff
にマップする必要があります。ノート:
実際のUnicodeのプライベート使用範囲は
e000-f8ff
です。ただし、f500-f8ff
はOracle Database固有のプライベート使用のために予約されています。 -
文字セット定義ファイルでは、1行の最大文字数は80文字です。
ノート:
既存の文字セットから新規のマルチバイト文字セットを作成する場合は、元の文字セットとして8ビットまたはマルチバイト文字セットを使用してください。
新規文字セットを既存のOracle Database文字セットから導出する場合は、次の文字セットのネーミング規則を使用することをお薦めします。
<Oracle_character_set_name
><organization_name
>EXT<version
>
たとえば、Sun社などの会社がJA16EUC文字セットにユーザー定義文字を追加する場合、適切な文字セット名は次のようになります。
JA16EUCSUNWEXT1
この文字セット名は、次の各部分で構成されています。
-
JA16EUC
は、Oracle Databaseが定義した文字セット名です。 -
SUNW
は、会社名(Sun社の株式取引上の略称)を表します。 -
EXT
は、JA16EUC文字セットに対する拡張要素であることを示します。 -
1
はバージョンを示します
12.5.6 例: Oracle Locale Builderを使用した新規文字セット定義の作成
この項では、文字セットIDに10001
を指定して、新規の文字セットMYCHARSET
を作成する方法について説明します。この例では、WE8ISO8859P1
文字セットを使用して中国語の10文字を追加します。
次の画面は、MYCHARSET
文字セットの「一般」タブ・ページを示しています。
「既存の定義の表示」をクリックし、「既存の定義」ダイアログ・ボックスからWE8ISO8859P1
文字セットを選択します。
「ISO文字セットID」フィールドと「基本文字セットID」フィールドはオプションです。「基本文字セットID」は値の継承に使用され、基本文字セットのプロパティがテンプレートとして使用されます。文字セットIDは自動的に生成されますが、オーバーライドして変更することもできます。ユーザー定義文字セットIDの有効範囲は、8000から8999または10000から20000です。
ノート:
Pro*COBOLを使用している場合は、8000から8999の文字セットIDを選択してください。
ユーザー定義文字セットの場合、「ISO文字セットID」は空白のままです。
この例では、「基本文字セットID」は空白のままです。ただし、テンプレートとして使用する文字セットを指定できます。「型指定」タブ・ページの設定は、「基本文字セットID」フィールドに入力した基本文字セットの型設定と一致する必要があります。型設定が一致しない場合、カスタム文字セットの生成時にエラーが表示されます。
次の画面は、「型指定」タブ・ページを示しています。
文字セット・カテゴリはASCII_BASEDで、BYTE_UNIQUE
オプションが選択されています。
既存の文字セットを選択した場合、「型指定」タブ・ページのフィールドはすでに適切な値に設定されています。変更する特別な理由がないかぎり、これらの値を保持してください。設定の変更が必要な場合は、次のガイドラインを使用します。
-
「FIXED_WIDTH」は、同じ長さの文字の文字セットを示すために使用します。
-
「BYTE_UNIQUE」は、コード・ポイントのシングルバイト範囲がマルチバイト範囲と区別されていることを示します。先頭バイトのコードは、その文字がシングルバイトかマルチバイトかを示します。例:
JA16EUC
。 -
「DISPLAY」は、格納用ではなくクライアントでの表示用にのみ使用される文字セットを示します。一部のアラビア語、デーバナーガリ語およびヘブライ語の文字セットは、表示用文字セットです。
-
「SHIFT」は、シングルバイト文字とマルチバイト文字とを区別するために、追加のシフト文字が必要な文字セットに対して使用します。
次の画面は、ユーザー定義文字の追加方法を示しています。
「文字データのマッピング」タブ・ページをオープンします。文字セット内で追加する文字の前になる文字を選択します。この例では、0xff
ローカル文字の値が選択されています。
1回に1文字を追加することも、テキスト・ファイルを使用して大量の文字をインポートすることも可能です。この例では、テキスト・ファイルをインポートしています。最初の列は、ローカル文字の値です。2列目はUnicode値です。このファイルには、次の文字の値が含まれています。
88a2 963f
88a3 54c0
88a4 611b
88a5 6328
88a6 59f6
88a7 9022
88a8 8475
88a9 831c
88aa 7a50
88ab 60aa
「ファイル」→「インポート」→「ユーザー定義文字データ」を選択します。
次の画面は、インポートした文字を文字セットの0xff
の後に追加した状態を示します。
12.6 Oracle Locale Builderを使用した新規言語ソートの作成
この項では、「照合ID」を10001
に設定してMY_GENERIC_M
と呼ばれる新規の多言語ソートを作成する方法を示します。新規言語ソートの基礎としてGENERIC_M
言語ソートを使用しています。次の画面に、開始方法を示します。
フラグの設定は、自動的に導出されます。「SWAP_WITH_NEXT」は、タイ語とラオ語のソートに関係します。「REVERSE_SECONDARY」は、フランス語のソート用です。「CANONICAL_EQUIVALENCE」は、標準的な規則を使用するかどうかを決定します。この例では、「CANONICAL_EQUIVALENCE」がオンになっています。
ユーザー定義ソートのための「照合ID」(ソートID)の有効範囲は、単一言語照合の場合は1000から2000、多言語照合の場合は10000から11000です。
次の画面は、「Unicode照合順序」タブ・ページを示しています。
この例では、文字の後にソートされるように数字を移動して、言語ソートをカスタマイズします。ステップは次のとおりです。
-
移動するUnicode値を選択します。前の画面では、
\x0034
Unicode値が強調表示されています。「Unicode照合順序」タブ・ページでの値の位置は、ノードと呼ばれます。 -
「切取り」をクリックします。ノードを移動する位置を選択します。
-
「貼付け」をクリックします。「貼付け」をクリックすると、次の画面に示す「ノードの貼付け」ダイアログ・ボックスがオープンします。
「ノードの貼付け」ダイアログ・ボックスでは、選択した位置の後にノードを貼り付けるか前に貼り付けるかを選択できます。隣に貼り付けるノードに対するノードのレベル(1次、2次または3次)を選択することもできます。
-
ノードを貼り付ける位置とレベルを選択します。前の画面では、「後」および「1次」オプションが選択されています。
-
「OK」をクリックしてノードを貼り付けます。
同様のステップに従って、他の数字を文字
a
からz
の後の位置に移動します。
次の画面は、数字0
から4
を文字a
からz
の後の位置に移動した後の「Unicode照合順序」タブ・ページを示しています。
この項の残りの部分は、次のトピックで構成されます。
12.6.1 同じ発音区別記号を持つすべての文字のソート順序の変更
次の例に、発音区別記号付きの文字のソート順序を変更する方法を示します。そのためには、特定の発音区別記号を含むすべての文字のソート順序を変更する方法と、一度に1文字ずつ変更する方法があります。この例では、曲折アクセント記号付きの各文字(û
など)のソート順序を、チルドが付いた同じ文字の後になるように変更します。
「ツール」→
「標準規則」を選択して、現在のソート順序を確認します。これにより、次の画面に示されている「標準規則」ダイアログ・ボックスがオープンします。
このダイアログ・ボックスは、アクセント記号付き文字が、対応する標準的な文字に分解される方法と現在のソート順序を示します。たとえば、û
はu
と ^
の組合せとして表されます。
関連項目:
標準的な規則の詳細は、「言語ソートと照合」を参照してください
(図12-26に示されている) Oracle Locale Builderの照合ウィンドウで、「空白以外の文字」タブをクリックします。「空白以外の文字」タブ・ページを使用すると、発音区別記号に対する変更がすべての文字に適用されます。次の画面は、「空白以外の文字」タブタブ・ページを示しています。
曲折アクセント記号を選択して「切取り」をクリックします。「削除の確認」ダイアログ・ボックスで「はい」をクリックします。チルドを選択して「貼付け」をクリックします。「ノードの貼付け」ダイアログ・ボックスで「後」と「2次」を選択して「OK」をクリックします。
次の画面は、新しいソート順序を示しています。
12.6.2 発音区別記号を持つ1文字のソート順序の変更
発音区別記号を持つ特定の文字の順序を変更するには、その文字を適切な位置に直接挿入します。発音区別記号付きの文字は「Unicode照合順序」タブ・ページに表示されないため、新しい位置へのカット・アンド・ペーストはできません。
この例では、ä
のソート順序をZ
の後にソートされるように変更します。
「Unicode照合」タブをクリックします。ä
の隣に配置する文字Z
を選択します。「追加」をクリックします。次の画面に示されている「新規ノードの挿入」ダイアログ・ボックスが表示されます。
「新規ノードの挿入」ダイアログ・ボックスで「後」と「1次」を選択します。ä
のUnicodeコード・ポイント値を入力します。このコード・ポイント値は、\x00e4
です。「OK」をクリックします。
次の画面は、結果のソート順序を示しています。
12.8 旧リリースOracle DatabaseからのカスタムNLBファイルのアップグレード
ロケール定義ファイルは、データベースのリリースに依存しています。たとえば、Oracle Database 9iおよびOracle Database 10gのNLBファイルは、Oracle Database 11のインストール環境などで直接サポートされていません。不具合の修正が必要になっても、パッチ・セット内のNLBファイルの形式が若干、変更されていることがあります。パッチ・セットに収容されているOracle提供のNLBファイルのいずれかが変更されている場合は、パッチ・セットまたはパッチ・セット更新(PSU)をインストールしたときに、ユーザーが設定した内容が上書きされる可能性があります。
ロケール・カスタマイズ・ファイルを現行リリースのデータベースから最新のリリースまたはパッチ・セットに移行するステップは、次のとおりです。
- ディレクトリをコピーし、カスタマイズしたNLBファイルまたはNLTファイルをそのディレクトリにコピーします。
- 最新リリースのデータベース、パッチ・セットまたはパッチ・セット更新を、必要に応じて既存のOracleホームまたは新しいOracleホームにインストールします。
- 新しいOracleホームまたは更新後のOracleホームのOracle Locale Builderを使用して、ステップ(1)でコピーしたファイルをそれぞれ開き、コピー元のディレクトリにNLT形式で保存します。
- 「NLBファイルの生成とインストール」の説明に従って、ここでも最新バージョンのOracle Locale Builderと同じコピー元のディレクトリを使用して、NLBの生成とインストールのステップを繰り返します。
Oracle Locale Builderは、旧バージョンのNLTファイルおよびNLBファイルの読込みと処理、さらに別のプラットフォームからのこれらのファイルの読込みと処理が可能である点に注意してください。ただし、Oracle Locale Builderでは、インストールされているOracle Databaseのリリースの最新の書式でNLTファイルが保存され、NLBファイルが生成されます。
12.9 同一プラットフォーム上のOracleインストール環境に対するカスタムNLBファイルのデプロイ
デプロイ元のカスタマイズの生成に使用するOracleホームと、データベースのリリース、パッチの構成、およびプラットフォームがまったく同じ別のOracleホームに、カスタマイズを追加するステップは、次のとおりです。
- ターゲットのOracleホームで、「NLBファイルの生成とインストール」のステップ1を実行します。
- ターゲットのOracleホームが別のマシン上にある場合は、FTPのバイナリ・モード、リモートにマウントされたファイル・システムへのコピー、
rcp
ユーティリティのように、ファイルのバイナリ・レベルの整合性が維持される方式を使用して、カスタマイズしたNLBファイルと生成したlx1boot.nlb
ファイルをターゲットのコンピュータにコピーします。 - ターゲットのコンピュータで、カスタマイズしたNLBファイルと
lx1boot.nlb
ファイルを含むディレクトリをdirectory_name
として使用して、「NLBファイルの生成とインストール」のステップ5から8までを実行します。
12.10 別のプラットフォーム上のOracleインストール環境に対するカスタムNLBファイルのデプロイ
NLBファイルはリリースに応じて異なりますが、プラットフォームには依存しません。プラットフォームごとのバイナリ形式の違い(32ビットと64ビット、ビッグ・エンディアンとリトル・エンディアン、ASCIIとEBCDIC)は、NLBのロード時には透過的に処理されます。したがって、ロケール・カスタマイズ・ファイルを、Oracle Databaseのリリースとパッチ構成が同じで、オペレーティング・システム・プラットフォームが異なる別のOracle Databaseインストール環境にデプロイする場合は、次の2つの選択肢の中からいずれかを選択できます。
-
カスタム
.NLT
ファイルを新しいプラットフォームに上書きでコピーし、「NLBファイルの生成とインストール」の説明に従って、NLBの生成とインストールのステップを繰り返します。 -
.NLB
ファイル一式(Oracle提供のNLBファイルとカスタムNLBファイルの両方)を新しいプラットフォームに上書きでコピーします。
2番目の選択肢を採用した場合、透過的なプラットフォームの処理が必要になるため、NLBのロードにかかる時間にある程度のオーバーヘッドが生じる可能性があることに注意してください。しかし、各NLBファイルは通常、Oracle DatabaseインスタンスまたはOracle Clientアプリケーションの起動後にのみロードされ、インスタンスまたはアプリケーションが停止するまではキャッシュされるため、このオーバーヘッドはごくわずかです。また、NLBファイルは必要になったときにロードされます。したがって、ほとんどのインストール環境では、存在するすべてのNLBファイルのうち、常にごく一部しかメモリーにロードされません。
2番目の選択肢は、Oracle Locale Builderがサポートされていないプラットフォーム用にファイルをカスタマイズするときに特に実用的です。
NLBファイル一式を新しいプラットフォームに上書きでコピーするステップは、次のとおりです。
-
ターゲットのOracleホームを使用している、すべてのOracle DatabaseインスタンスとOracle Clientアプリケーションを停止します。
-
ファイルを所有するユーザー(通常はユーザー
oracle
)になった状態で、すべてのNLBファイルをターゲットのOracleホームのORA_NLS10
ディレクトリから、バックアップ用のディレクトリに移動します。UNIXプラットフォームの場合は、次のようなコマンドを入力します。% setenv ORA_NLS10 $ORACLE_HOME/nls/data % cd $ORA_NLS10 % mkdir orig % mv *.nlb orig
-
すべてのNLBファイルをソースのOracleホームNLBディレクトリからターゲットのOracleホームNLB(
$ORA_NLS10
)ディレクトリにコピーします。FTPのバイナリ・モード、リモートにマウントされたファイル・システムへのコピー、rcp
ユーティリティのように、ファイルのバイナリ・レベルでの整合性が維持されるリモート・コピー方式を使用します。 -
必要に応じて、データベースのインスタンス、アプリケーションのいずれか、または両方を再起動します。
12.11 GINSTALLユーティリティを使用したJavaコンポーネントへのカスタムのロケール定義の追加
Ginstall
ユーティリティは、使用するアプリケーションのJavaコンポーネントにカスタム文字セット、言語、地域、および言語ソートを追加します。Locale Builderを使用して、カスタム文字セット、言語、地域、および言語ソートを定義します。カスタム定義を含むNLTファイルがLocale Builderによって生成されます。カスタム定義をJavaコンポーネントに追加するには、Ginstall
を実行してgdk_custom.jar
を生成します。
文字セット、言語、地域、および言語ソートにカスタム定義を追加する手順は、次のとおりです。
カスタム定義を削除するには:
-
次のようにして、
Ginstall
を実行します。java -classpath $ORACLE_HOME/jlib/orai18n.jar:$ORACLE_HOME/lib/xmlparserv2.jar Ginstall -[remove | r] <Name of NLT file>
カスタム定義を更新するには:
-
次のようにして、
Ginstall
を実行します。java -classpath $ORACLE_HOME/jlib/orai18n.jar:$ORACLE_HOME/lib/xmlparserv2.jar Ginstall -[update | u] <Name of NLT file>
12.12 NLSカレンダ・ユーティリティを使用したカレンダのカスタマイズ
Oracle Databaseは、複数のカレンダをサポートしています。場合によっては、その中に、今後の元号の追加が必要なものや、地域的な要件に合せて、うるう年の日数の増減が必要なものがあります。Oracleの運用環境に必要な情報を追加する方法として、カレンダ機能の実行時に自動的にロードされる外部ファイルを使用できます。
カレンダのデータは、最初にテキスト・ファイルに定義します。このテキスト定義ファイルは、バイナリ形式に変換する必要があります。NLSカレンダ・ユーティリティ(lxegen
)を使用すると、テキスト定義ファイルをバイナリ形式に変換できます。
テキスト定義ファイルの名前とlxegen
ユーティリティに対する位置は、プラットフォーム依存の値でハードコード化されています。UNIXプラットフォームの場合、ファイル名はlxecal.nlt
で、$ORACLE_HOME/nls
ディレクトリにあります。テキスト定義ファイルのサンプルは、$ORACLE_HOME/nls/demo
ディレクトリに含まれています。
テキスト定義ファイル内の参照先カレンダの数に応じて、lxegen
ユーティリティによって、1つ以上のバイナリ・ファイルが生成されます。バイナリ・ファイルの名前もプラットフォーム依存の値でハードコード化されています。UNIXプラットフォームの場合、バイナリ・ファイルの名前はそれぞれ、lxecalah.nlb
(アラビア語版ヒジュラ暦のうるう年)、lxecaleh.nlb
(英語版のヒジュラ暦のうるう年)、lxecalji.nlb
(日本の元号暦の元号)です。バイナリ・ファイルはテキスト・ファイルと同じディレクトリに生成され、同名のバイナリ・ファイルがあれば上書きされます。
バイナリ・ファイルが生成されると、そのファイルはシステムの初期化時に自動的にロードされます。このファイルを移動したり名前を変更しないでください。Oracle Locale Builderによって生成されるファイルとは異なり、カレンダ個別のバイナリ・ファイルはプラットフォームに依存します。Oracleソフトウェアのリリースとプラットフォームの組合せごとに別々に生成する必要があります。
カレンダ・ユーティリティを起動するには、コマンドラインから次のように入力します。
% lxegen
関連項目:
-
デモ・ファイルのインストール方法の詳細は、『Oracle Database Examplesインストレーション・ガイド』を参照してください
-
ご使用のシステム上のファイルの位置については、オペレーティング・システムのマニュアルを参照してください。