クライアント接続の言語およびロケール・プリファレンスの設定

ロケール・プレファレンスおよびI/Oデバイス文字セットに応じて、Oracle Databaseへのクライアント・アプリケーション接続を構成します。

ロケール・プレファレンスおよびI/Oデバイス文字セットに応じて、Oracle Databaseへのクライアント・アプリケーション接続を構成する必要があります。ロケール・プリファレンスを構成する、アプリケーション固有の方法がない場合は、Oracleデータベースのクライアント接続を構成するために使用する方法は、データベースへの接続に使用する、アクセスするためのAPIによって異なります。アプリケーションのロケール・プリファレンスを構成する前に、アプリケーションのドキュメントを確認してください。

Oracle Call Interface (OCI)を使用してOracle Databaseに接続するアプリケーションの場合、NLS_LANGまたはその他のNLS_で始まる名前のクライアント設定を使用して、Oracle Databaseセッションのロケール規則およびクライアント文字セットを設定します。NLS_LANG値の文字セット部分を適切に設定することが重要です。設定する文字セットは、I/Oデバイスによって使用される文字セットに対応している必要があり、Microsoft Windowsの場合は、WE8MSWIN1252などのANSIコード・ページ(GUIアプリケーションの場合)、またはUS8PC437などのOEMコード・ページ(コンソール・モードのアプリケーションの場合)のいずれかです。これを行うには、アプリケーションから受け取ったデータの文字セットをOCI API側で認識する必要があります。OCIでは、このデータを適切なデータベース文字セットに変換できます。

NLS_LANGおよびその他のNLS設定は、環境変数またはWindowsレジストリ設定のどちらでも指定できます。環境変数の値は、レジストリの値よりも優先されます。

Oracle Universal Installerは、Microsoft WindowsでのOracleホームの新規作成時にレジストリのNLS_LANG設定のデフォルト値を設定します。NLS_LANGの値はWindowsのユーザー・インタフェース言語に基づき、これはWindowsのメニュー項目やダイアログ・ボックスのラベルに使用される言語です。

警告:

クライアントの文字セットが正しく設定されていないと、データ損失の原因になります。

Oracle Databaseへの接続にOracle JDBCを使用するJavaアプリケーションでは、NLS_LANGを使用しません。かわりにOracle JDBCでは、アプリケーションを実行しているJava VMのデフォルトのロケールをOracle Databaseのlanguageとterritoryの設定にマップします。その後、これらの設定を使用して接続済のデータベース・セッションがOracle JDBCで構成されます。Javaは内部的にはUnicodeで動作するため、クライアントの文字セットは常にUnicodeに設定します。アプリケーションで明示的にこれを変更しないかぎり、Java VMのデフォルト・ロケールは、Java VMを実行しているユーザーのオペレーティング・システムのロケールに従って設定されます。Java VMのデフォルト・ロケールの構成については、Java VMのドキュメントを参照してください。

ノート:

3層アーキテクチャのデプロイメントで、データベース・クライアントであるアプリケーション・サーバーには、NLS_LANG値またはJava VMロケールの指定を構成ファイルに設定できます。該当サーバーに付属するドキュメントで確認してください。

関連項目:

ユーザー・ロケール・プリファレンスの構成の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。