0

AL32UTF8 で Oracle DB をセットアップしました。SQLPlus や SQLDeveloper などのツールを使用すると、DBCS 文字 (中国語、高 ASCII など) を DB に入れることができます。

ただし、Oracle Instant Client を使用しているアプリケーションがデータを DB に入れようとすると、DBCS 文字が ? に変わります。マーク。私はこの問題を解決し、これを行うことで物事を機能させることができました: 私のアプリケーションを実行しているマシン (CentOS) で NLS_LANG='.AL32UTF8' をエクスポートします。DB は別のマシンにあります。上記の修正では、すべてのクライアントで NLS_LANG を設定する必要があります。

私ができるようにしたいこと (可能であれば) は、クライアントがデフォルトで NLS_LANG = '.AL32UTF8' を使用していると想定するように DB を構成して、すべてのクライアントで NLS_LANG を設定する必要がないようにすることです。これは可能ですか?もしそうなら、どのように?

4

2 に答える 2

1

トリガーを設定するAFTER LOGONことは、データベース層が NLS パラメータを積極的に制御する唯一の方法です。クライアント環境を介して継承された設定は、サーバー環境で設定された設定を上書きします。

于 2013-11-11T19:12:12.583 に答える
1

この設定はクライアントのみに属します。クライアントがデフォルトがラテン語であると想定している場合、他の場所で上書きすることはできません。一方、アプリケーションで必要なオプションALTER SESSIONを設定することはいつでもできます。NLS_LANG

于 2013-11-11T16:25:04.543 に答える