4

NLS_LANGローカル言語のレジストリを設定しました。CMD はローカル言語の文字を表示できないため、jibrish が表示されます。クライアントからのプロンプトについて話しているのであって、実際のデータではなく、エラー メッセージなどです。

SQL> conn scott/tiger
ετσß°.

他のプログラムがそれに依存しているため、クライアントの設定をローカル NLS に保持する必要があります。

gloginを追加しようとし$set NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252ましたが、スクリプトは sql*Plus が既に開始された後にのみ実行されるため、明らかに機能していません。

私の質問は、SQL*PlusのみNLS_LANGに を設定する方法はありますか?AMERICAN_AMERICA.WE8MSWIN1252

4

5 に答える 5

7

NLS_LANGSQL*Plus のセッションでは変更できません。言語、地域、数字などのみを設定できます...例:

ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN';
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,';

NLS_LANGは環境変数として設定されるため、SqlPlusを実行する前に次を使用します。

Windows の場合:

set NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252

Unix の場合 (Solaris および Linux、centos など)

export NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252
于 2016-03-31T17:28:42.933 に答える
1

login.sql または glogin.sqlを使用して、SQL*Plus の起動時に任意のコマンドを実行できるので、そこで適切なセッション設定を行います。

于 2015-09-01T15:32:14.413 に答える
0

alter session set nls_language='AMERICAN';

あなたの問題を解決します...

于 2013-06-12T13:10:17.360 に答える
0

今日同じ問題に遭遇したとき、これは私にとってはうまくいきました

sqlplus を実行する前に実行する Windows コマンド プロンプトから

set NLS_LANG=.AL32UTF8
于 2018-04-20T17:27:34.003 に答える