私は1つの.sqlファイルを作成し、出力は、いくつかのジャンク言葉Oracleのドイツ語の文字は、ジャンク文字に変換されますか?
に置き換えなった後、 @filepath..\germantest.sql
を使用してsqlplus
からSQLスクリプトを実行している唯一のフィールドTCHAR
SQL> desc test;
Name Null? Type
----------------------------------------- -------- --------------
TCHAR CHAR(20)
を持つ単純なテーブルを作成しました出力:
しかし、同じデータをファイルの代わりにsqlplusで直接挿入しようとすると、
入力
insert into test values('Ärger Ökonom');
insert into test values('Ä');
insert into test values('Wir bestß');
insert into test values('Nauch à â Ý');
出力
SQL> select * from test;
TCHAR
--------------------
Ärger Ökonom
Ä
Wir bestß
Nauch à â Y
は、出力は正しいです、ここで示しています。
私は今まで何を試みましたか?
- 私は、ファイル形式をチェックし、それは私がNLS_CHARSETをチェックし、それがAL32UTF8であるUTF-8
- でなければなりません。
私は何を期待しましたか?
- sqldeveloperから同じファイルを実行すると、正しい出力が得られます。
同じスクリプトを.sqlファイルから実行し、元のファイルと同じようにデータベースにドイツ語の文字を残したいとします。
これらの文字がSQL Developerで正しく表示されていれば、データベースに正しく格納されています。SQL \ * Plusが正しく表示しないという事実は、あなたのコンソールフォントがこれらの文字(またはUTF-8)をサポートしていないことを意味します。別のオプションは、SQL * PlusのNLS環境が正しく構成されていないことです。どのオペレーティングシステムを使用していますか? –
私たちはwindows7を使用しています。 sqldeveloperからファイルを実行するときにデータが正しく格納されません。正しい出力が得られますが、sqlplusから同じファイルを実行すると、奇妙な出力が得られます。 –
WindowsでSQL * PlusのNLS設定を確認してください。おそらくUTF-8を使用していない可能性があります。環境変数 'NLS_LANG'を正しく設定する必要があります –