ヘッダーをスキップ
Oracle® Databaseグローバリゼーション・サポート・ガイド
12cリリース1 (12.1)
B71319-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

12 ロケール・データのカスタマイズ

この章では、ロケール・データのカスタマイズ方法について説明します。この章の内容は、次のとおりです。

Oracle Locale Builderユーティリティの概要

Oracle Locale Builderは、ロケール・データをカスタマイズするための簡単で効率的な方法を提供します。ロケール固有のデータを簡単に表示、変更および定義できるGUIも提供します。Oracle Locale Builderではテキストおよびバイナリ定義ファイルからデータを抽出して、読取り可能な形式で表示するため、ユーザーはこれらのファイルで使用されている形式を気にせずに情報を処理できます。

Oracle Locale Builderでは、言語、地域、キャラクタ・セットおよび言語ソートの4種類のロケール定義を管理します。ユーザー定義文字やカスタマイズされた言語規則もサポートします。既存のテキスト定義ファイルやバイナリ定義ファイルの定義を表示して、変更を加えたり、独自の定義を作成できます。

この項の内容は、次のとおりです。

Oracle Locale Builder用のUnicodeフォントの構成

Oracle Locale Builderでは、多くの機能でUnicode文字が使用されます。たとえば、Unicodeコード・ポイントへのローカル文字コード・ポイントのマッピングが表示されます。Oracle Locale Builderは、文字が表現されるオペレーティング・システム上で使用可能なローカル・フォントに依存します。したがって、Oracle Locale Builderを完全にサポートするUnicodeフォントの使用をお薦めします。ローカル・フォントで文字を表現できない場合、その文字は空の四角として表示される可能性があります。

Windowsでのフォント構成

Windowsには、Unicodeをサポートする多数のTrueTypeフォントおよびOpenTypeフォントがあります。MicrosoftのArial Unicode MSフォントを使用することをお薦めします。このフォントには、50,000を超える絵文字が含まれ、Unicode 6.1のほとんどの文字をサポートしているためです。

インストールしたUnicodeフォントは、Oracle Locale Builderで使用できるように、Java Runtimeのfont.propertiesファイルに追加します。このfont.propertiesファイルは、$JAVAHOME/jre/libディレクトリにあります。たとえば、Arial Unicode MSフォントの場合は、font.propertiesファイルに次のエントリを追加します。

dialog.n=Arial Unicode MS, DEFAULT_CHARSET
dialoginput.n=Arial Unicode MS, DEFAULT_CHARSET
serif.n=Arial Unicode MS, DEFAULT_CHARSET
sansserif.n=Arial Unicode MS, DEFAULT_CHARSET

n は、フォント・リスト内でArial Unicode MSフォントに割り当てるための次の順序番号です。Java Runtimeは、各仮想フォントについてフォント・マッピング・リストを検索し、システムで使用可能な最初のフォントを使用します。

font.propertiesファイルの編集後に、Oracle Locale Builderを再起動してください。


関連項目:

font.propertiesファイルの詳細は、Sun社の国際化Webサイトを参照してください。

その他のプラットフォームでのフォント構成

Windows以外のプラットフォーム用Unicodeフォントは、Windowsプラットフォームよりも選択肢が限定されています。文字を十分にカバーするUnicodeフォントが見つからない場合は、異なる言語に複数のフォントを使用します。前述のWindowsプラットフォームの場合の手順に従って、各フォントをインストールし、そのフォントのエントリをfont.propertiesファイルに追加してください。

たとえば、フォントricoh-hg minchoを使用してSun社のSolarisで日本語の文字を表示するには、エントリを$JAVAHOME/libにある既存のfont.propertiesファイルのdialogdialoginputserifおよびsansserifセクションに追加します。次に例を示します。

serif.plain.3=-ricoh-hg mincho l-medium-r-normal--*-%d-*-*-m-*-jisx0201.1976-0

注意:

オペレーティング・システムのロケールによっては、ロケール固有のfont.propertiesファイルを使用できます。たとえば、Sun社のSolarisで現行のオペレーティング・システムのロケールがja_JP.eucJPの場合は、font.properties.jaを使用できます。


関連項目:

使用可能なフォントの詳細は、ご使用のオペレーティング・システムのマニュアルを参照してください。

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の画面が表示されます。

図12-1 Oracle Locale Builderユーティリティ

図12-1の説明は次にあります。
「図12-1 Oracle Locale Builderユーティリティ」の説明

Oracle Locale Builderのページとダイアログ・ボックス

Oracle Locale Builderでの特定のタスクを使用する前に、次のようなタブ・ページとダイアログ・ボックスについて理解しておく必要があります。

「既存の定義」ダイアログ・ボックス

「新規言語」「新規地域」「新規キャラクタ・セット」または「新規言語ソート」を選択すると、最初に「一般」タブ・ページが表示されます。「既存の定義の表示」をクリックすると、「既存の定義」ダイアログ・ボックスが表示されます。

「既存の定義」ダイアログ・ボックスでは、ロケール・オブジェクトを名前でオープンできます。起動する特定の言語、地域、言語ソート(照合)またはキャラクタ・セットがわかっている場合は、表示されている名前をクリックします。たとえば、図12-2では、AMERICAN言語定義ファイルをオープンできます。

図12-2 「既存の定義」ダイアログ・ボックス

図12-2の説明は次にあります。
「図12-2 「既存の定義」ダイアログ・ボックス」の説明

AMERICAN」を選択すると、lx00001.nlbファイルがオープンします。NLBファイルは、特定の言語、地域、キャラクタ・セットまたは言語ソートの設定を含むバイナリ・ファイルです。

言語と地域の略称は参照用のため、オープンできません。

「セッション・ログ」ダイアログ・ボックス

「ツール」「ログの表示」を選択すると、「セッション・ログ」ダイアログ・ボックスが表示されます。「セッション・ログ」ダイアログ・ボックスには、現行のセッションで行われた処理が表示されます。「ログの保存」をクリックすると、すべての変更のレコードが保存されます。図12-3に、セッション・ログの例を示します。

図12-3 「セッション・ログ」ダイアログ・ボックス

図12-3の説明は次にあります。
「図12-3 「セッション・ログ」ダイアログ・ボックス」の説明

「NLTのプレビュー」タブ・ページ

NLT(National Language Text)ファイルは、ファイル拡張子が.nltのXMLファイルで、特定の言語、地域、キャラクタ・セットまたは言語ソートの設定を格納します。「NLTのプレビュー」タブ・ページには、ファイルが読取り可能な書式で表示されるため、変更内容が適切かどうかを確認できます。「NLTのプレビュー」タブ・ページからはNLTファイルを変更できません。NLTファイルを変更するには、Oracle Locale Builderで提供される特定のツールとプロシージャを使用する必要があります。

図12-4に、ユーザー定義言語AMERICAN FRENCH「NLTのプレビュー」タブ・ページの例を示します。

図12-4 NLTファイルのプレビュー

図12-4の説明は次にあります。
「図12-4 NLTファイルのプレビュー」の説明

ファイルを開くダイアログ・ボックス

「ファイル」「開く」ファイル名で指定を選択すると、「ファイルを開く」ダイアログ・ボックスを表示できます。次に、変更あるいはテンプレートとして使用するNLB(National Language Binary)ファイルを選択します。NLBファイルは、ファイル拡張子が.nlbのバイナリ・ファイルで、そのNLTファイル内の情報に相当するバイナリが含まれています。図12-5に、lx00001.nlbファイルが選択されているファイルを開くダイアログ・ボックスを示します。「プレビュー」ペインは、このNLBファイルがAMERICAN言語用であることを示しています。

図12-5 ファイルを開くダイアログ・ボックス

図12-5の説明は次にあります。
「図12-5 ファイルを開くダイアログ・ボックス」の説明

Oracle Locale Builderを使用した新規言語定義の作成

この項では、フランス語に基づいて新規言語を作成する方法について説明します。この新しい言語は、AMERICAN FRENCHと呼ぶことにします。最初に、「既存の定義」ダイアログ・ボックスからFRENCHをオープンします。次に、「一般」タブ・ページで言語名をAMERICAN FRENCHに変更し、「言語の略称」「AF」に変更します。他の設定はデフォルト値のままにします。図12-6に、設定後の「一般」タブ・ページを示します。

図12-6 言語の一般情報

図12-6の説明は次にあります。
「図12-6 言語の一般情報」の説明

言語などのロケール・オブジェクトの名前を選択するときには、次の制限事項が適用されます。

ユーザー定義言語の場合、「言語ID」フィールドの有効範囲は1,000から10,000です。Oracle Locale Builderで提供される値を受け入れるか、この範囲内の値を指定できます。


注意:

特定のID範囲は、ユーザー定義のLANGUAGETERRITORYCHARACTER SETMONOLINGUAL COLLATIONおよびMULTILINGUAL COLLATIONの定義に対してのみ有効です。この章の各項では、各タイプのユーザー定義ロケール・オブジェクトに関係する範囲が指定されています。

図12-7に、「月名」タブ・ページを使用して月の名前を設定する方法を示します。

図12-7 「月名」タブ・ページ

図12-7の説明は次にあります。
「図12-7 「月名」タブ・ページ」の説明

すべての名前は、NLTファイルに表示されているとおりに示されます。先頭の文字を大文字にするかどうかに対して「はい」を選択すると、アプリケーションでは月の名前の先頭に大文字が使用されますが、「月名」タブ・ページでは大文字で表示されません。

図12-8に、「曜日」タブ・ページを示します。

図12-8 「曜日」タブ・ページ

図12-8の説明は次にあります。
「図12-8 「曜日」タブ・ページ」の説明

ユーザー定義言語に曜日名を選択できます。すべての名前は、NLTファイルに表示されているとおりに示されます。先頭の文字を大文字にするかどうかに対して「はい」を選択すると、アプリケーションでは曜日名の先頭に大文字が使用されますが、曜日タブ・ページでは大文字で表示されません。

図12-9に、「共通情報」タブ・ページを示します。

図12-9 「共通情報」タブ・ページ

図12-9の説明は次にあります。
「図12-9 「共通情報」タブ・ページ」の説明

現在の言語に関連付けられている地域、キャラクタ・セット、Windows用キャラクタ・セットおよび言語ソートを表示できます。通常、最も適切な項目または最も一般的に使用されている項目が、最初に表示されます。たとえば、FRENCH言語では、共通地域はFRANCE、BELGIUM、CANADAおよびDJIBOUTIで、サポートされているキャラクタ・セットは、WE8ISO8859P1、WE8MSWIN1252、AL32UTF8およびWE8ISO8859P15です。Windows環境では、WE8ISO8859P1よりもWE8MSWIN1252が一般的であるため、最初に表示されます。

Oracle Locale Builderを使用した新規地域定義の作成

この項では、新規の地域REDWOOD SHORESを作成し、地域の略称としてRSを使用する方法について説明します。新規の地域は、既存の地域定義に基づいていません。

基本タスクは次のとおりです。

図12-10に、「地域名」としてREDWOOD SHORES「地域ID」として1001「地域の略称」としてRSが設定されている「一般」タブ・ページを示します。

図12-10 地域の「一般」タブ・ページ

図12-10の説明は次にあります。
「図12-10 地域の「一般」タブ・ページ」の説明

ユーザー定義地域に対する「地域ID」フィールドの有効範囲は、1000から10000です。

図12-11に、「暦」タブ・ページのカレンダ書式の設定を示します。

図12-11 カレンダ書式の選択

図12-11の説明は次にあります。
「図12-11 カレンダ書式の選択」の説明

月曜日が週の開始日として設定され、暦年の第1週がISO週として設定されています。図12-11には、サンプル・カレンダを示しています。


関連項目:


図12-12「日付と時間」タブ・ページを示します。

図12-12 日付書式と時刻書式の選択

図12-12の説明が続きます
「図12-11 カレンダ書式の選択」の説明

リストから書式を選択すると、書式の例が表示されます。このケースでは、短い日付書式DD-MM-YY短い時間書式HH24:MI:SSOracle日付書式DD-MM-YY長い日付書式fmDay, Month dd, yyyyに設定されています。タイムスタンプ・タイムゾーン書式は設定されていません。

ドロップダウン・メニューから選択せずに、独自のフォーマットを入力することもできます。

図12-13に、「数値」タブ・ページを示します。

図12-13 数値書式の選択

図12-13の説明は次にあります。
「図12-13 数値書式の選択」の説明

「小数点記号」にはピリオドが選択されています。負の記号の位置は数値の左に設定されています。数値グループ・セパレータはカンマです。数値グループ化は3桁、リスト・セパレータはカンマ、測定法はメトリック、丸め指定は4に指定されています。

リストの値を使用せずに、独自の値を入力することもできます。

リストから書式を選択すると、書式の例が表示されます。


関連項目:

「数値書式」

図12-14に、「通貨」タブ・ページの通貨書式の設定を示します。

図12-14 通貨書式の選択

図12-14の説明は次にあります。
「図12-14 通貨書式の選択」の説明

各国通貨記号には$が設定されています。代替通貨記号はユーロ記号です。通貨表記には、各国通貨記号、借方記号および数値が順に並びます。「小数点記号」はピリオド、「グループ・セパレータ」はカンマ、通貨数値のグループ化3です。通貨の精度、つまり小数点以下の桁数は3です。貸方記号+借方記号-です。国際通貨セパレータは空白であるため、フィールドには表示されていません。国際通貨記号(ISO通貨記号)はUSDです。Oracle Locale Builderには、ユーザーが選択した通貨書式の例が表示されます。

リストを使用せずに、独自の値を入力することもできます。


関連項目:

「通貨書式」

図12-15に、「共通情報」タブ・ページを示します。

図12-15 「共通情報」タブ・ページ

図12-15の説明は次にあります。
「図12-15 「共通情報」タブ・ページ」の説明

現在の地域の共通言語と共通タイム・ゾーンを表示できます。たとえば、地域がCANADAの場合、共通言語はENGLISH、CANADIAN FRENCHおよびFRENCHです。共通タイム・ゾーンは、America/Montreal、America/St_Johns、America/Halifax、America/Winnipeg、America/Regina、America/EdmontonおよびAmerica/Vancouverです。

Oracle Locale Builderを使用したコード・チャートの表示

Oracle Locale Builderでは、キャラクタ・セットのコード・チャートを表示して印刷できます。Oracle Locale Builderの初期画面から「ファイル」「新規」「キャラクタ・セット」を選択します。図12-16に、表示される画面を示します。

図12-16 キャラクタ・セットの「一般」タブ・ページ

図12-16の説明は次にあります。
「図12-16 キャラクタ・セットの「一般」タブ・ページ」の説明

「既存の定義の表示」をクリックします。表示するキャラクタ・セットを選択します。図12-17に、US7ASCIIが選択されている「既存の定義」ダイアログ・ボックスを示します。

図12-17 「既存の定義」ダイアログ・ボックスでのUS7ASCIIの選択

図12-17の説明は次にあります。
「図12-17 「既存の定義」ダイアログ・ボックスでのUS7ASCIIの選択」の説明

「開く」をクリックしてキャラクタ・セットを選択します。図12-18に、US7ASCIIが選択されている「一般」タブ・ページを示します。

図12-18 US7ASCIIが選択されている「一般」タブ・ページ

図12-18の説明は次にあります。
「図12-18 US7ASCIIが選択されている「一般」タブ・ページ」の説明

「文字データのマッピング」タブをクリックします。図12-19に、US7ASCIIの「文字データのマッピング」タブ・ページを示します。

図12-19 US7ASCIIの「文字データのマッピング」タブ・ページ

図12-19の説明は次にあります。
「図12-19 US7ASCIIの「文字データのマッピング」タブ・ページ」の説明

「コード・チャートの表示」をクリックします。図12-20に、US7ASCIIのコード・チャートを示します。

図12-20 US7ASCIIコード・チャート

図12-20の説明は次にあります。
「図12-20 US7ASCIIコード・チャート」の説明

このコード・チャートは、ローカル・キャラクタ・セットでの各文字のエンコーディング値、各文字に関連付けられた絵文字、およびUnicode値を示しています。

コード・チャートを印刷する場合は、「ページの印刷」をクリックします。

Oracle Locale Builderを使用した新規キャラクタ・セット定義の作成

特定のユーザーのニーズにあわせてキャラクタ・セットをカスタマイズできます。エンコードされた既存のキャラクタ・セット定義を拡張できます。ユーザー定義文字は、多くの場合、次のような文字要素を表現する特殊文字をエンコードするために使用されます。

この項では、Oracle Databaseでユーザー定義文字がどのようにサポートされているかを説明します。内容は次のとおりです。

ユーザー定義文字(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キャラクタ・セットには、ユーザー定義文字をサポートする事前定義済の範囲が含まれています。

表12-2 ユーザー定義文字の範囲を含むOracle Databaseのキャラクタ・セット

キャラクタ・セット名 ユーザー定義文字に使用可能なコード・ポイント数

JA16DBCS

4370

JA16EBCDIC930

4370

JA16SJIS

1880

JA16SJISYEN

1880

KO16DBCS

1880

KO16MSWIN949

1880

ZHS16DBCS

1880

ZHS16GBK

2149

ZHT16DBCS

6204

ZHT16MSWIN950

6217


Oracle Databaseのキャラクタ・セット変換アーキテクチャ

特定の文字を表すコード・ポイントの値は、キャラクタ・セットによって異なります。図12-21に、日本語の漢字を示します。

図12-21 日本語の漢字

図12-21の説明は次にあります。
「図12-21 日本語の漢字」の説明

次の表に、この文字が様々なキャラクタ・セットでどのようにエンコードされるかを示します。

Unicodeエンコーディング JA16SJISエンコーディング JA16EUCエンコーディング JA16DBCSエンコーディング
4E9C 889F B0A1 4867

Oracle Databaseでは、すべてのキャラクタ・セットをUnicode 6.1のコード・ポイントの見地から定義しています。つまり、それぞれの文字はUnicode 6.1のコード値として定義されています。中間フォームとしてUnicodeを使用することによって、ユーザーが意識することなく文字変換が行われます。たとえば、JA16SJISのクライアントがJA16EUCのデータベースに接続する場合、JA16SJISのクライアントから入力した図12-21の文字のコード・ポイント値は889Fとなります。この文字は内部的にUnicode(コード・ポイント値は4E9C)に変換された後、JA16EUC(コード・ポイント値はB0A1)に変換されます。

Unicode 6.1のPrivate Use Area

Unicode 6.1では、Private Use Area(PUA)用にE000からF8FFの範囲が予約されています。PUAは、エンド・ユーザーまたはベンダーがプライベートで使用する文字を定義するためのものです。

ユーザー定義文字は、標準文字と同様に中間フォームとしてUnicode 6.1のPUAを使用して、2つのOracle Databaseキャラクタ・セット間で変換されます。

キャラクタ・セット間でのユーザー定義文字のクロス・リファレンス

ユーザー定義文字を複数のオペレーティング・システムにまたがって登録する場合は、異なるキャラクタ・セット間のクロス・リファレンスが必要になります。クロス・リファレンスにより、キャラクタ・セットがUnicode PUAの値にマッピングされ、ユーザー定義文字を異なるキャラクタ・セット間で確実に正しく変換できます。

たとえば、ユーザー定義文字を日本語シフトJISのオペレーティング・システムと日本語IBMホスト・オペレーティング・システムの両方に登録する場合、この文字に対して、シフトJISのオペレーティング・システムではF040コード・ポイント、IBMホスト・オペレーティング・システムでは6941コード・ポイントの割当てができます。これによって、キャラクタ・セットJA16SJISとJA16DBCSの間で、この文字が正しくマップされます。

Oracle Locale Builderを使用してキャラクタ・セット定義を表示すると、ユーザー定義文字のクロス・リファレンス情報を検索できます。たとえば、シフトJISのUDC値F040とIBMホストのUDC値6941が、同じUnicode PUA値E000にマップされていることがわかります。

既存のキャラクタ・セットから新規キャラクタ・セットを作成する際のガイドライン

デフォルトの場合、Oracle Locale Builderは次に使用可能なキャラクタ・セットIDを生成します。独自のキャラクタ・セットIDを選択することもできます。キャラクタ・セット定義用NLTファイルのネーミングには、次の書式を使用します。

lx2dddd.nlt

ddddは、16進数で4桁のキャラクタ・セットIDです。

キャラクタ・セットを変更する場合は、次のガイドラインに従ってください。

  • 既存の文字を再マップしないでください。

  • すべての文字のマッピングは一意であることが必要です。

  • 新規文字は、Unicodeのプライベート使用範囲(e000からf4ff)にマップする必要があります。(実際のUnicode 6.1のプライベート使用範囲は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はバージョンを示します。

例: Oracle Locale Builderを使用した新規キャラクタ・セット定義の作成

この項では、キャラクタ・セットID10001を指定して、新規のキャラクタ・セットMYCHARSETを作成する方法について説明します。この例では、WE8ISO8859P1キャラクタ・セットを使用して中国語の10文字を追加します。

図12-22に、MYCHARSET「一般」タブ・ページを示します。

図12-22 MYCHARSETの「一般」タブ・ページ

図12-22の説明は次にあります。
「図12-22 MYCHARSETの「一般」タブ・ページ」の説明

「既存の定義の表示」をクリックし、「既存の定義」ダイアログ・ボックスからWE8ISO8859P1キャラクタ・セットを選択します。

「ISOキャラクタ・セットID」フィールドと「基本キャラクタ・セットID」フィールドはオプションです。「基本キャラクタ・セットID」は値の継承に使用され、基本キャラクタ・セットのプロパティがテンプレートとして使用されます。「キャラクタ・セットID」は自動的に生成されますが、オーバーライドして変更することもできます。ユーザー定義キャラクタ・セットIDの有効範囲は、8000から8999または10000から20000です。


注意:

Pro*COBOLを使用している場合は、8000から8999のキャラクタ・セットIDを選択してください。

ユーザー定義キャラクタ・セットの場合、「ISOキャラクタ・セットID」フィールドは空白のままです。

この例では、「基本キャラクタ・セットID」フィールドは空白のままです。ただし、テンプレートとして使用するキャラクタ・セットを指定できます。「型指定」タブ・ページの設定は、「基本キャラクタ・セットID」フィールドに入力した基本キャラクタ・セットの型設定と一致する必要があります。型設定が一致しない場合、カスタム・キャラクタ・セットの生成時にエラーが表示されます。

図12-23に、「型指定」タブ・ページを示します。

図12-23 「型指定」タブ・ページ

図12-23の説明は次にあります。
「図12-23 「型指定」タブ・ページ」の説明

キャラクタ・セット・カテゴリASCII_BASEDで、「BYTE_UNIQUE」ボタンが選択されています。

既存のキャラクタ・セットを選択した場合、「型指定」タブ・ページのフィールドはすでに適切な値に設定されています。変更する特別な理由がないかぎり、これらの値を保持してください。設定の変更が必要な場合は、次のガイドラインを使用します。

  • 「FIXED_WIDTH」は、同じ長さの文字のキャラクタ・セットを示すために使用します。

  • 「BYTE_UNIQUE」は、コード・ポイントのシングルバイト範囲がマルチバイト範囲と区別されていることを示します。先頭バイトのコードは、その文字がシングルバイトかマルチバイトかを示します。例: JA16EUC。

  • 「DISPLAY」は、格納用ではなくクライアントでの表示用にのみ使用されるキャラクタ・セットを示します。一部のアラビア語、デーバナーガリ語およびヘブライ語のキャラクタ・セットは、表示用キャラクタ・セットです。

  • 「SHIFT」は、シングルバイト文字とマルチバイト文字とを区別するために、追加のシフト文字が必要なキャラクタ・セットに対して使用します。


    関連項目:

    シフトイン・キャラクタ・セットとシフトアウト・キャラクタ・セットの詳細は、「可変幅マルチバイト・コード体系」を参照してください。

図12-24に、ユーザー定義文字の追加方法を示します。

図12-24 ユーザー定義文字データのインポート

図12-24の説明は次にあります。
「図12-24 ユーザー定義文字データのインポート」の説明

「文字データのマッピング」タブ・ページをオープンします。キャラクタ・セット内で追加する文字の前になる文字を選択します。この例では、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

「ファイル」「インポート」「ユーザー定義文字データ」を選択します。

図12-25に、インポートした文字をキャラクタ・セットの0xffの後に追加した状態を示します。

図12-25 キャラクタ・セットの新しい文字

図12-25の説明は次にあります。
「図12-25 キャラクタ・セットの新しい文字」の説明

Oracle Locale Builderを使用した新規言語ソートの作成

この項では、「照合ID」を10001に設定してMY_GENERIC_Mと呼ばれる新規の多言語ソートを作成する方法を示します。新規言語ソートの基礎としてGENERIC_M言語ソートを使用しています。図12-26に、この操作の開始方法を示します。

図12-26 照合の「一般」タブ・ページ

図12-26の説明は次にあります。
「図12-26 照合の「一般」タブ・ページ」の説明

フラグの設定は、自動的に導出されます。「SWAP_WITH_NEXT」は、タイ語とラオ語のソートに関係します。「REVERSE_SECONDARY」は、フランス語のソート用です。「CANONICAL_EQUIVALENCE」は、標準的な規則を使用するかどうかを決定します。この例では、「CANONICAL_EQUIVALENCE」がオンになっています。

ユーザー定義ソートのための「照合ID」(ソートID)の有効範囲は、単一言語照合の場合は1000から2000、多言語照合の場合は10000から11000です。


関連項目:


図12-27に、「Unicode照合順序」タブ・ページを示します。

図12-27 「Unicode照合順序」タブ・ページ

図12-27の説明は次にあります。
「図12-27 「Unicode照合順序」タブ・ページ」の説明

この例では、文字の後にソートされるように数字を移動して、言語ソートをカスタマイズします。手順は次のとおりです。

  1. 移動するUnicode値を選択します。図12-27では、\x0034 Unicode値が選択されています。「Unicode照合順序」タブ・ページでの値の位置は、ノードと呼ばれます。

  2. 「切取り」をクリックします。ノードを移動する位置を選択します。

  3. 「貼付け」をクリックします。「貼付け」をクリックすると、図12-28に示す「ノードの貼付け」ダイアログ・ボックスがオープンします。

図12-28 「ノードの貼付け」ダイアログ・ボックス

図12-28の説明は次にあります。
「図12-28 「ノードの貼付け」ダイアログ・ボックス」の説明

図12-29に、数字0から4を文字aからzの後の位置に移動した後の「Unicode照合順序」タブ・ページを示します。

図12-29 変更後の「Unicode照合順序」画面

図12-29の説明は次にあります。
「図12-29 変更後の「Unicode照合順序」画面」の説明

これ以降の内容は、次のとおりです。

同じ発音区別記号を持つすべての文字のソート順序の変更

次の例に、発音区別記号付きの文字のソート順序を変更する方法を示します。そのためには、特定の発音区別記号を含むすべての文字のソート順序を変更する方法と、一度に1文字ずつ変更する方法があります。この例では、曲折アクセント記号付きの各文字(ûなど)のソート順序を、チルドが付いた同じ文字の後になるように変更します。

「ツール」「標準規則」を選択して、現在のソート順序を確認します。図12-30の「標準規則」ダイアログ・ボックスが開きます。

図12-30 「標準規則」ダイアログ・ボックス

図12-30の説明は次にあります。
「図12-30 「標準規則」ダイアログ・ボックス」の説明

図12-30に、アクセント記号付き文字が、対応する標準的な文字に分解される方法と現在のソート順序を示します。たとえば、ûu^の組合せとして表されます。


関連項目:

標準的な規則の詳細は、第5章「言語ソートと照合」を参照してください。

Oracle Locale Builderの照合の「一般」タブ・ページ(図12-26)で、「空白以外の文字」タブをクリックします。「空白以外の文字」タブ・ページを使用すると、発音区別記号に対する変更がすべての文字に適用されます。図12-31に、「空白以外の文字」タブ・ページを示します。

図12-31 同じ発音区別記号を持つすべての文字のソート順序の変更

図12-31の説明は次にあります。
「図12-31 同じ発音区別記号を持つすべての文字のソート順序の変更」の説明

曲折アクセント記号を選択して「切取り」をクリックします。「削除の確認」ダイアログ・ボックスで「はい」をクリックします。チルドを選択して「貼付け」をクリックします。「ノードの貼付け」ダイアログ・ボックスで「後」「2次」を選択して「OK」をクリックします。

図12-32に、新しいソート順序を示します。

図12-32 同じ発音区別記号を持つ文字の新規のソート順序

図12-32の説明は次にあります。
「図12-32 同じ発音区別記号を持つ文字の新規のソート順序」の説明

発音区別記号を持つ1文字のソート順序の変更

発音区別記号を持つ特定の文字の順序を変更するには、その文字を適切な位置に直接挿入します。発音区別記号付きの文字は「Unicode照合順序」タブ・ページに表示されないため、新しい位置へのカット・アンド・ペーストはできません。

この例では、äのソート順序をZの後にソートされるように変更します。

「Unicode照合」タブをクリックします。äの隣に配置する文字Zを選択します。「追加」をクリックします。図12-33の「新規ノードの挿入」ダイアログ・ボックスが表示されます。

図12-33 発音区別記号を持つ1文字のソート順序の変更

図12-33の説明は次にあります。
「図12-33 発音区別記号を持つ1文字のソート順序の変更」の説明

「新規ノードの挿入」ダイアログ・ボックスで「後」「1次」を選択します。äのUnicodeコード・ポイント値を入力します。このコード・ポイント値は、\x00e4です。「OK」をクリックします。

図12-34に、変更後のソート順序を示します。

図12-34 1文字を変更後の新規ソート順序

図12-34の説明は次にあります。
「図12-34 1文字を変更後の新規ソート順序」の説明

NLBファイルの生成とインストール

新規言語、地域、キャラクタ・セットまたは言語ソートを定義した後は、NLTファイルから新規のNLBファイルを次のように生成します。

  1. ファイルの所有者(通常はユーザーoracle)として、ORA_NLS10ディレクトリ内で、NLSインストール・ブート・ファイル(lx0boot.nlb)とNLSシステム・ブート・ファイル(lx1boot.nlb)のバックアップを作成します。UNIXプラットフォームの場合は、次のようなコマンドを入力します。

    % setenv ORA_NLS10 $ORACLE_HOME/nls/data
    % cd $ORA_NLS10
    % cp -p lx0boot.nlb lx0boot.nlb.orig
    % cp -p lx1boot.nlb lx1boot.nlb.orig
    

    -pオプションを指定すると、元のファイルのタイムスタンプが保たれることに注意してください。

  2. Oracle Locale Builderで、「ツール」「NLBの生成」を選択するか、左側のバーで「NLBの生成」アイコンをクリックします。

  3. 「参照」をクリックして、NLTファイルが格納されているディレクトリを検索します。位置を指定するダイアログ・ボックスは、図12-35のとおりです。

    図12-35 「位置」ダイアログ・ボックス

    図12-35の説明は次にあります。
    「図12-35 「位置」ダイアログ・ボックス」の説明

    NLTファイルは指定しないでください。Oracle Locale Builderは、各NLTファイルに対してNLBファイルを生成します。

  4. 「OK」をクリックしてNLBファイルを生成します。

    図12-36は、ディレクトリ内の全NLTファイルに対してNLBファイルが正常に生成されたことを示す最終的な通知を示しています。

    図12-36 「NLBの生成の成功」ダイアログ・ボックス

    図12-36の説明は次にあります。
    「図12-36 「NLBの生成の成功」ダイアログ・ボックス」の説明

  5. lx1boot.nlbファイルをORA_NLS10環境変数で指定したパスにコピーします。たとえば、UNIXプラットフォームの場合は、次のようなコマンドを入力します。

    % cp /directory_name/lx1boot.nlb $ORA_NLS10/lx1boot.nlb
    
  6. 新規のNLBファイルをORA_NLS10ディレクトリにコピーします。たとえば、UNIXプラットフォームの場合は、次のようなコマンドを入力します。

    % cp /directory_name/lx22710.nlb $ORA_NLS10
    % cp /directory_name/lx52710.nlb $ORA_NLS10
    

    注意:

    NLTファイルが収容されているディレクトリにNLBファイルが生成されます。

  7. 新規に作成したロケール・データを使用できるように、データベースを再起動します。

  8. 新規のロケール・データをクライアント側で使用するには、NLBファイルをインストールしてからクライアントを終了し、再起動します。


    関連項目:

    ORA_NLS10環境変数の詳細は、「オンデマンドのロケール・データ」を参照してください。

旧リリースOracle DatabaseからのカスタムNLBファイルのアップグレード

ロケール定義ファイルは、データベースのリリースに依存しています。たとえば、Oracle Database 9iおよびOracle Database 10gのNLBファイルは、Oracle Database 11のインストール環境などで直接サポートされていません。不具合の修正が必要になっても、パッチ・セット内のNLBファイルの形式が若干、変更されていることがあります。パッチ・セットに収容されているOracle提供のNLBファイルのいずれかが変更されている場合は、パッチ・セットまたはパッチ・セット更新(PSU)をインストールしたときに、ユーザーが設定した内容が上書きされる可能性があります。

ロケール・カスタマイズ・ファイルを現行リリースのデータベースから最新のリリースまたはパッチ・セットに移行する手順は、次のとおりです。

  1. ディレクトリをコピーし、カスタマイズしたNLBファイルまたはNLTファイルをそのディレクトリにコピーします。

  2. 最新リリースのデータベース、パッチ・セットまたはパッチ・セット更新を、必要に応じて既存のOracleホームまたは新しいOracleホームにインストールします。

  3. 新しいOracleホームまたは更新後のOracleホームのOracle Locale Builderを使用して、手順(1)でコピーしたファイルをそれぞれ開き、コピー元のディレクトリにNLT形式で保存します。

  4. 「NLBファイルの生成とインストール」の項の説明に従って、ここでも最新バージョンのOracle Locale Builderと同じコピー元のディレクトリを使用して、NLBの生成とインストールの手順を繰り返します。

Oracle Locale Builderは、旧バージョンのNLTファイルおよびNLBファイルの読込みと処理、さらに別のプラットフォームからのこれらのファイルの読込みと処理が可能である点に注意してください。ただし、Oracle Locale Builderでは、インストールされているOracle Databaseのリリースの最新の書式でNLTファイルが保存および生成されます。

同一プラットフォーム上のOracleインストール環境に対するカスタムNLBファイルのデプロイ

デプロイ元のカスタマイズの生成に使用するOracleホームと、データベースのリリース、パッチの構成、およびプラットフォームがまったく同じ別のOracleホームに、カスタマイズを追加する手順は、次のとおりです。

  1. ターゲットのOracleホームで、「NLBファイルの生成とインストール」の手順1を実行します。

  2. ターゲットのOracleホームが別のマシン上にある場合は、FTPのバイナリ・モード、リモートにマウントされたファイル・システムへのコピー、rcpユーティリティのように、ファイルのバイナリ・レベルの整合性が維持される方式を使用して、カスタマイズしたNLBファイルと生成したlx1boot.nlbファイルをターゲットのコンピュータにコピーします。

  3. ターゲットのコンピュータで、カスタマイズしたNLBファイルとlx1boot.nlbファイルを収容しているディレクトリをdirectory_nameとして使用して、「NLBファイルの生成とインストール」の手順5から8までを実行します。

別のプラットフォーム上のOracleインストール環境に対するカスタムNLBファイルのデプロイ

NLBファイルはリリースに応じて異なりますが、プラットフォームには依存しません。プラットフォームごとのバイナリ形式の違い(32ビットと64ビット、ビッグ・エンディアンとリトル・エンディアン、ASCIIとEBCDIC)は、NLBのロード時には透過的に処理されます。したがって、ロケール・カスタマイズ・ファイルを、Oracle Databaseのリリースとパッチ構成が同じで、オペレーティング・システム・プラットフォームが異なる別のOracle Databaseインストール環境にデプロイする場合は、次の2つの選択肢の中からいずれかを選択できます。

  1. カスタム.NLTファイルを新しいプラットフォームに上書きでコピーし、「NLBファイルの生成とインストール」の説明に従って、NLBの生成とインストールの手順を繰り返します。

  2. .NLBファイル一式(Oracle提供のNLBファイルとカスタムNLBファイルの両方)を新しいプラットフォームに上書きでコピーします。

2番目の選択肢を採用した場合、透過的なプラットフォームの処理が必要になるため、NLBのロードにかかる時間にある程度のオーバーヘッドが生じる可能性があることに注意してください。しかし、各NLBファイルは通常、Oracle DatabaseインスタンスまたはOracle Clientアプリケーションの起動後にのみロードされ、インスタンスまたはアプリケーションが停止するまではキャッシュされるため、このオーバーヘッドはごくわずかです。また、NLBファイルは必要になったときにロードされます。したがって、ほとんどのインストール環境では、存在するすべてのNLBファイルのうち、常にごく一部しかメモリーにロードされません。

2番目の選択肢は、Oracle Locale Builderがサポートされていないプラットフォーム用にファイルをカスタマイズするときに特に実用的です。

NLBファイル一式を新しいプラットフォームに上書きでコピーする手順は、次のとおりです。

  1. ターゲットのOracleホームを使用している、すべてのOracle DatabaseインスタンスとOracle Clientアプリケーションを停止します。

  2. ファイルを所有するユーザー(通常はユーザーoracle)になった状態で、すべてのNLBファイルをターゲットのOracleホームのORA_NLS10ディレクトリから、バックアップ用のディレクトリに移動します。UNIXプラットフォームの場合は、次のようなコマンドを入力します。

    % setenv ORA_NLS10 $ORACLE_HOME/nls/data
    % cd $ORA_NLS10
    % mkdir orig
    % mv *.nlb orig
    
  3. すべてのNLBファイルをソースのOracleホームNLBディレクトリからターゲットのOracleホームNLB($ORA_NLS10)ディレクトリにコピーします。FTPのバイナリ・モード、リモートにマウントされたファイル・システムへのコピー、rcpユーティリティのように、ファイルのバイナリ・レベルでの整合性が維持されるリモート・コピー方式を使用します。

  4. 必要に応じて、データベースのインスタンス、アプリケーションのいずれか、または両方を再起動します。

GINSTALLユーティリティを使用したJavaコンポーネントへのカスタムのロケール定義の追加

ginstallユーティリティは、使用するアプリケーションのJavaコンポーネントにカスタム・キャラクタ・セット、言語、地域、および言語ソートを追加します。Locale Builderを使用して、カスタム・キャラクタ・セット、言語、地域、および言語ソートを定義します。カスタム定義を含むNLTファイルがLocale Builderによって生成されます。カスタム定義をJavaコンポーネントを追加するには、ginstallを実行してgdk_custom.jarを生成します。Oracle Databaseリリース10.2および10.1でも、リリース11.1および11.2と同様の手順を使用できます。

キャラクタ・セット、言語、地域、および言語ソートにカスタム定義を追加する手順は、次のとおりです。

  1. Oracle Locale Builderを使用して、NTLファイルを生成します。

    カスタムのNLBファイルを旧リリースからアップグレードする場合、「旧リリースOracle DatabaseからのカスタムNLBファイルのアップグレード」で説明する手順に従ってください。

  2. ginstall-addまたは-aオプションを指定して実行し、gdk_custom.jarを生成します。

    ginstall –[add | a] lx2dddd.nlt
    

    NLTファイルを生成する手順は、次のとおりです。

    ginstall -[add | a] lx2ddd.nlt lx2dddd.nlt lx2dddd.nlt
    
  3. gdk_custom.jarを、orai18n.jarまたはorai18n-mapping.jarと同じディレクトリにコピーします。

カスタム定義を削除する手順は、次のとおりです。

カスタム定義を更新する手順は、次のとおりです。

NLSカレンダ・ユーティリティを使用したカレンダのカスタマイズ

Oracle Databaseは、複数のカレンダをサポートしています。場合によっては、その中に、今後の元号の追加が必要なものや、地域的な要件に合せて、うるう年の日数の増減が必要なものがあります。Oracleの運用環境に必要な情報を追加する方法として、カレンダ機能の実行時に自動的にロードされる外部ファイルを使用できます。

カレンダのデータは、最初にテキスト・ファイルに定義します。このテキスト定義ファイルは、バイナリ形式に変換する必要があります。NLSカレンダ・ユーティリティ(lxegen)を使用すると、テキスト定義ファイルをバイナリ形式に変換できます。

テキスト定義ファイルの名前とlxegenユーティリティに対する位置は、プラットフォーム依存の値でハードコード化されています。UNIXプラットフォームの場合、ファイル名はlxecal.nltで、$ORACLE_HOME/nlsディレクトリにあります。テキスト定義ファイルのサンプルは、$ORACLE_HOME/nls/demoディレクトリに含まれています。デモ・ファイルのインストール方法の詳細は、『Oracle Database Examplesインストレーション・ガイド』』を参照してください。

テキスト定義ファイル内の参照先カレンダの数に応じて、lxegenユーティリティによって、1つ以上のバイナリ・ファイルが生成されます。バイナリ・ファイルの名前もプラットフォーム依存の値でハードコード化されています。UNIXプラットフォームの場合、バイナリ・ファイルの名前はそれぞれ、lxecalah.nlb(アラビア語版ヒジュラ暦のうるう年)、lxecaleh.nlb(英語版のヒジュラ暦のうるう年)、lxecalji.nlb(日本の元号暦の元号)です。バイナリ・ファイルはテキスト・ファイルと同じディレクトリに生成され、同名のバイナリ・ファイルがあれば上書きされます。

バイナリ・ファイルが生成されると、そのファイルはシステムの初期化時に自動的にロードされます。このファイルを移動したり名前を変更しないでください。Oracle Locale Builderによって生成されるファイルとは異なり、カレンダ個別のバイナリ・ファイルはプラットフォームに依存します。Oracleソフトウェアのリリースとプラットフォームの組合せごとに別々に生成する必要があります。

カレンダ・ユーティリティを起動するには、コマンドラインから次のように入力します。

% lxegen

関連項目:

  • ご使用のシステム上のファイルの位置については、オペレーティング・システムのマニュアルを参照してください。

  • 「暦法」