3

JDBC と ODBC の両方を使用して接続する Oracle 11 データベースがあります。JDBC は正常に動作しますが、ODBC では結果のすべてのポーランド語の文字がSELECTラテン語の同等文字に変更されます。たとえば、ą-> aÓ->などです。モジュールOを使用するアプリケーションと単純な Python プログラムでテストしました。odbcデータベースからの同じ値が次のように返されます。

ZAMOŚĆ - by JDBC
ZAMOSC - by ODBC

私の環境:

DBサーバー: Oracle Database 11gリリース11.2.0.1.0 - 64ビット本番

クライアント マシン:

  • Windows Server 2008 R2 64 ビット
  • 32 ビットおよび 64 ビット バージョンの Oracle クライアント:c:\Oracle\Ora1120_32bitおよびc:\Oracle\Ora1120_64bit
  • ODBC マネージャーは、Oracle ドライバーのバージョンを次のように報告します: 11.02.00.01

すべてのロケールがポーランド/ポーランドに設定されていると思いますが、SETコマンド ライン ユーティリティでは表示されません。

ポーランド語の文字を同等のラテン語に変換するのにどの ODBC または環境設定が関与しているか、誰でも知っていますか?

4

1 に答える 1

4

どちらの場合も、クライアントの文字セットの値が同じではないと思われます。NLS_LANG 設定の値を確認できますか:

  • Windows を使用しているため、レジストリに設定する必要があります (おそらく HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE -> YOUR_HOME -> NLS_LANG)。
  • これで問題が解決しないことがわかりましたが、環境変数 NLS_LANG を追加するとうまくいきました!
于 2011-02-10T12:47:37.750 に答える