0

Oracle データベースから Windows 7 PC の MS Access または Excel にデータを取得しようとしています。データには、度記号や直径記号などの文字が含まれます。PCでは正しく表示されません。クエリで dump 関数を使用してデータが正しく保存されていること、およびクライアントの文字セットに変換されていないことがわかります。

このクエリを見て、さらに でデータベース パラメータをクエリするとSELECT * FROM NLS_database_PARAMETERSNLS_CHARACTERSET = US7ASCII. この文字セットには直径記号などが含まれていないため、これが問題の原因であると思います。

しかし、レジストリをチェックして、NLS_LANG が何に設定されているかを確認しましたENGLISH_UNITED KINGDOM.WE8MSWIN1252GERMAN_GERMANY言語/地域を (たとえば) 変更するとクエリが変更される ため、正しいレジストリ キーを探していることがわかります。

この設定をオーバーライドしている環境変数も確認しましたが、見つかりませんでした。上記と同じ設定で NLS_LANG 環境変数を作成しようとしましたが、違いはありませんでした。

私の Windows コード ページは 1252 に設定されています。データベースのNLS_NCHAR_CHARACTERSET設定はAL16UTF16です。

次に何をすべきかについてのアイデアはありますか?

4

1 に答える 1

0

NLS_CHARACTERSETが設定されている場合US7ASCII、そこから特殊文字を取得することはありません。NLS_NCHAR_CHARACTERSET=AL16UTF16列のデータ型がNVARCHAR2or NCHAR(not VARCHAR2)であれば、任意の文字を取得する必要があります。

ローカルNLS_LANGをに設定するとENGLISH_UNITED KINGDOM.AL32UTF8、機能するはずです。

于 2015-05-01T13:26:53.220 に答える