0

Oracle の製品での国際化サポート、文字セットのエンコードと変換を理解しようとしています。残念ながら、読むほど混乱が頭に浮かびます。あなたの助けを願っています。

ここに私の質問があります:

1.) NLSパラメータと文字セット変換を考慮して、クライアントとサーバーがどのように通信するかを順を追って説明してもらえますか? ネット上にそのようなトピックがあることは知っていますが、それは私にとって十分に明確ではありません.

2.) サーバーとクライアントが別々のマシンである場合、NLS_LANG を両方で別々に設定する必要があるのは正しいですか?

3.) サーバーマシンで NLS_LANG を設定する方法は? クライアントと同じ方法ですか?

4.) Orcale ブランチのレジストリ、システム変数 (コントロール パネルを使用)、およびコマンド ラインの「set」コマンドで NLS_LANG を設定することの違いは何ですか?

5.) chasrset 変換はどのように行われますか? 「クライアントとサーバーで文字セットが同じ場合、Oracleはクライアントから送信されたものを直接保存します。変換は必要ありません」とどこかで読んだことがあります。クライアントマシンのNLS_LANG」または「サーバーマシンのNLS_LANGUAGE」と「クライアントマシンのNLS_LANG」のラチャー?

6.) どのような場合ですか: サーバーはその NLS 情報 (NLS_LANG または NLS_LANGUAGE?) をクライアントに送信しますか、それともラッチャー クリネットは NLS_LANG 設定をサーバーに送信しますか?

7.) 変換はどこで行われますか? クライアントシステムまたはサーバー上で?

事前にすべての助けをありがとう!:-)

4

1 に答える 1

0

NLS_LANG は、クライアント アプリケーションの文字セットに設定する必要があります。これは多くの場合、オペレーティング システムが使用する文字セットです。私 (オランダ人) の場合、Windows はWindows 1252エンコーディングを使用しているため、クライアントの NLS_LANG を WE8MSWIN1252 に設定しました。

1) 申し訳ありませんが、順を追って説明すると、話が長くなり、別のトピックになります。

2) サーバー NLS_LANG は、SQL*Plus をサーバー上で直接実行する場合にのみ使用されます。その場合、サーバーは他のクライアントと同じです。

3) 2) を参照してください。ほとんどの場合、サーバー上の NLS_LANG は無関係です。

4) 正確な優先順位はわかりませんが、「SET」コマンド ラインが最も強力だと思います。これが設定されていない場合は、コントロール パネルの環境変数が使用されます。それらが存在しない場合はレジストリが使用され、最後にレジストリが空の場合は US7ASCII が使用されます。

5) クライアントの NLS_LANG とサーバーの NLS_CHARACTERSET の間で比較が行われます。後者は で確認できますSELECT VALUE FROM V$NLS_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET

6) 7 を参照してください。サーバーの NLS_CHARACTERSET はクライアントに送信され、その逆も同様です。

7) 適切な変換テーブルがクライアントで利用可能な場合、変換はクライアントで行われることを読んだことがあります。十分な情報が利用できない場合、変換はサーバーで行われます。

于 2012-11-25T17:57:32.190 に答える